多校聯合訓練4 5773

2021-07-15 19:32:01 字數 623 閱讀 1569

【解題方法】

0可以轉化成任意整數,包括負數,顯然求lis時盡量把0都放進去必定是正確的。因此我們可以把0拿出來,對剩下的做o(nlogn)的lis,統計結果的時候再算上0的數量。為了保證嚴格遞增,我們可以將每個權值s[i]減去i前面0的個數,再做lis,就能保證結果是嚴格遞增的。

【ac **】

#include #include #include #include using namespace std;

const int maxn=100010;

int a[maxn],b[maxn];

int ans[maxn];

int cnt,zero,len;

int main()

memset(b,0,sizeof(b));

memset(ans,0,sizeof(ans));

cnt=0;

zero=0;

bool flag=0;

for(int i=1; i<=n; i++)

}ans[0]=b[0];

len=1;

for(int i=1; ians[len-1])

else

}if(flag==0) len=0;

//cout<

2018多校聯合訓練2

打的慘不忍睹,就過了3題 1004 水題,直接輸出yes就過了,solved by lyy include using namespace std define ll long long int n int main return 0 1010 逆序對 min x,y 隊友一開始wa了4發,給了他模...

2018多校聯合訓練4

過了6題,第一次進入前100名 1012 直接從1走到n solved by wyq include includeint a 100005 int reabs int x int main return 0 1004 和出題人心有靈犀2333 solved by lyy include using...

2018 多校聯合訓練 7

problem a 比賽的時候沒主要搞這個題 因為不怎麼會 其實就是類似做dij的乙個過程,記錄3個值 當前點編號,到當前點的代價,當前點的那條邊的顏色。然後遍歷一遍就可以了。problem b 本來比賽的時候想到不同的字母之間的差值肯定不能作為迴圈節。然後我就上了fft,因為做過差不多的題。但是w...