Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest 思维 + 差分
傳送門
文章目錄
- 題意:
- 思路:
題意:
給你三個長度分別為k1,k2,k3k1,k2,k3k1,k2,k3的數組a,b,ca,b,ca,b,c,其中k1+k2+k3=nk1+k2+k3=nk1+k2+k3=n,這三個數組中的元素拼接起來是一個nnn的排列,每次可以將某個數組中的某個元素移動到另一個數組,問最少幾次操作使得aaa是1?n1-n1?n的一個前綴,ccc是1?n1-n1?n的一個后綴,bbb包含剩下的數。
n≤2e5n\le2e5n≤2e5
思路:
首先可以想一下只有兩個數組的時候我們怎么辦,記cnt1icnt1_icnt1i?表示第一個數組前iii個數出現的次數,cnt2icnt2_icnt2i?表示第二個數組前iii個數出現的次數,那么最終的情況一定是aaa包含[1,i][1,i][1,i],bbb包含[i+1,n][i+1,n][i+1,n],那么答案就是aaa數組[i+1,n][i+1,n][i+1,n]擁有的個數+b+b+b數組[1,i][1,i][1,i]擁有的個數,即cnt1n?cnt1i+cnt2icnt1_n-cnt1_i+cnt2_icnt1n??cnt1i?+cnt2i?。
現在擴展到了三個數組,那么我們加一個cnt3icnt3_icnt3i?,最終的情況就是[1,i],[i+1,j],[j+1,n][1,i],[i+1,j],[j+1,n][1,i],[i+1,j],[j+1,n]分別對應a,b,ca,b,ca,b,c三個數組,那么答案就分為三個部分:aaa中包含[i+1,n][i+1,n][i+1,n]的個數,bbb中包含[1,i],[j+1,n][1,i],[j+1,n][1,i],[j+1,n]的個數,ccc中包含[1,j][1,j][1,j]的個數,答案就是cnt1n?cnt1i+cnt2n?cnt2j+cnt2i+cnt3jcnt1_n-cnt1_i+cnt2_n-cnt2_j+cnt2_i+cnt3_jcnt1n??cnt1i?+cnt2n??cnt2j?+cnt2i?+cnt3j?,這個式子直接算的話是n2n^2n2的,顯然不可接受,考慮將b,cb,cb,c數組放一起,讓后枚舉[0,n][0,n][0,n]代表iii,我們只需要找到一個最大的jjj位置即可,由于上面的式子中含jjj的只有兩項cnt3j?cnt2jcnt3_j-cnt2_jcnt3j??cnt2j?,我們取一個后綴最大值即可。
總結
以上是生活随笔為你收集整理的Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest 思维 + 差分的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脑立清治什么病
- 下一篇: Educational Codeforc