【解題方法】
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...