CF1328A
簡單題,我們用 \(b-a%b\) 的餘數即可,注意特判 \(a%b==0\) 即可
CF1328B
細節蠻多的,我們可以發現最終個數可以寫成 \(1+2+3+\dots +(p-1)+p+g\) 最後 \(n-p\) 就是第一個b的位置, \(n-g\) 就是第二個b的位置,可以推式子然後 \(O(n)\) 求
但是我選擇二分查詢g,然後注意一下細節即可
CF1328C
貪心,首先,如果數位上有2/0我們先把它均分,找到有1的最高位,則一定有一份有有一份沒有,有1的那一份一定比沒有1的那一份大,因為要讓最大值最小,所以剩下的數部分給沒有1的那一份即可
CF1328D
首先考慮一個數最多相鄰兩個數,所以顏色最多有3種
這題應該構造,但是我少考慮了一些情況,所以就沒寫出來
分類討論
所有數相等的情況,必然只有1
然後若n為偶數,則有通解1,2,1,2...
若n為奇數,則考慮必然最後有兩個1或兩個2是相鄰的,對於這種情況,把這兩個1或2,給到一組相鄰的相等的數即可,若沒有,自然是3
CF1328E
好玩的一道題!
我們轉化一下題意,就是求有從根節點出發的鏈能不能經過與此點相鄰的點或其本身
考慮樹上相鄰點的情況:
這個點的父節點和這個點的子節點或這個點,考慮因為是從根出發的鏈,所以想經過後兩種點,自然會經過父節點,所以只需要考慮一條鏈能不能經過所有點的父節點即可
怎麼操作呢?
我們先按節點深度排一下序,只需要判斷下一個節點是否在這個節點子樹內即可,然後這個過程可以用dfs序解決