發現,一定有乙個點作為起點,所有的路徑都不經過這個起點。
接著貪心求答案, 如果c
i>
1 ,將其中ci
−1個錢往後「鋪」。 易證x
2+y2
<=(x
+y)2
那麼維護乙個佇列,先進先出,就能保證最小。
#include
#include
#include
#include
#include
#include
#include
const
int maxlongint=2147483647;
const
int mo=1000000007;
const
int n=150005;
using
namespace
std;
int d[n],c[n*2],n,m,tot,mak[n];
long
long ans;
int main()
for(int i=1;i<=n;i++)
}if(ans>=0)
for(int j=1;j<=n;j++)
mak[j]++;
ans+=(j-d[head])*(j-d[head]);
head++;
}if(ans>=0) }}
NOIP2016提高A組8 11 錢倉
發現,一定有乙個點作為起點,所有的路徑都不經過這個起點。接著貪心求答案,如果 c i 1 將其中 c i 1 個錢往後 鋪 易證 x 2 y 2 x y 2 那麼維護乙個佇列,先進先出,就能保證最小。include include include include include include in...
NOIP2016提高A組8 11 自然數
n 求出mex 1,i 1 i n 雖然0 ai 10 9,但只有n個數,所以mex一定小於等於n for long long j 1 j n j 顯然mex是單調不下降的,接著用線段樹維護mex。如果刪掉a i 從下乙個mex比a i 大的位置到下乙個a i 的位置之前的mex都會改變,都會變成a...
NOIP2016提高A組8 11 自然數
第一行n 第二行n個數 答案3 0 1 3 n 200000 a i 109 50分暴力明顯,用標記陣列隨便yy 但是你可能在想要離散化,其實凡是大於n的都直接等於n就行了,mex最大就是n 想 如果知道 1,n 的mex,能不能求到 2,n 顯然mex 1,i 是單調遞增的,當第乙個數被刪掉時,如...