CF1328题解

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序解决

posted @ 2024-11-24 11:56  daydreamer_zcxnb  阅读(37)  评论(0)    收藏  举报