NOIP2016提高A組8 11 錢倉

2021-07-16 13:05:21 字數 809 閱讀 3847

發現,一定有乙個點作為起點,所有的路徑都不經過這個起點。

接著貪心求答案, 如果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 是單調遞增的,當第乙個數被刪掉時,如...