Somewhere surrounded by the night, the sun will shine
2021.10.06 模拟赛
A. string
很像是 HEOI2016 排序,但是有 个字母 开26个线段树
开二十六个线段树或者每个节点开一个 大小的数组是可行的,不过我常数太大了,所以用了奇怪的方法
线段树上如果当前段全是一个颜色就记录一下,数量就是 ,如果不是就继续递归
直觉上排序之后会变得有序,所以不会暴力扫的太多,大概可以用势能一类的证明复杂度?(或者Hack我)
B. water
比较优秀的想法是最小生成树,不过可以有不优秀的想法
考虑每个点能蓄水就是他四周的最低的比他高的那个 减去他的 ,所以我们开个小根堆去 BFS,但是要考虑蓄水状态可以继承,所以每次放到堆里的是
C. number
设一个暴力的状态 表示当前第 位, 的次数状态为 , 的方案
第一个问题是 怎么压,因为题目保证了 ,可以考虑变进制状压,每一位的进制是出现的次数,这样最多是 的状态
然后发现复杂度过不去,要跑 s,但其实发现没必要记录 这一维,因为 必然是从小到大转移,这样就是 的复杂度