CF1034C Region Separation
这题要从“能否把一个子树切开?”来考虑。
如果只能分一次:想分成 (k) 个一份,就要在 (sz[u] mod k = 0) 的地方都切开,看看能否切出 (sum/k) 块,能的话有一种方案。
能分多次:可以猜猜结论,枚举一下倍数。
CF1034D Intervals of Intervals
这题有一些不容易想到的想法。
首先我们肯定按照所有区间权值,从大往小取。并且大的区间权值肯定更大。
对于每个右端点,所取的一些区间一定是 ([1,i],[2,i],[3,i]...,[L_i,i])
考虑二分一个值 (val) ,取掉权值 (ge val) 的所有区间,数这些区间的个数。
按照右端点扫过去,所有 ([1,i],[2,i]...) 的权值是可以若干次区间加维护的。
可以直接线段树二分。但是有更优的做法,(L) 是递增的,可以直接开个差分数组,移动 (L) 。(这样的去掉 log 以前在某模拟赛题见过)
CF1034E Little C Loves 3 III
一道构造一个 FWT 能做的式子的题,感觉更像是脑洞构造题。
由于每位 <=3 ,我们乘上 4 的幂次方来区分 popcnt
设 (a_x = s_x imes 4^{popcnt(x)}) 把这个进行 XOR 卷积。