「考试」省选15
感觉做了个CSP模拟地说。
T1
这个题比较难。
首先发现对于一个数来说
我们贪心的剪掉所有位上最大的哪一个是对的。
具体证明见课件,这里略过。
设:\(dp[mx][len][w]\)为当前是第len位,len以前的位上的最大值为mx,当前位为w的答案,然后再记录一个余数即可。
转移的时候从高向低剪掉这一位,最终使得这一位为0即可。
细节比较多。
T2
裸的exsam
虽然不是Trie不过可以直接键。
对于同一个位置来说,如果有两个相同度数的儿子,如果插入的话,也就是相当于在parent树上的边上多加了一个点,对于这种统计是无所谓的。
然后直接当作生成魔咒就可以做了。
T3
和多维网络差不多。
都是一个dp
设\(dp[i][j]\)为从1到第i个坏点经过j个坏点的方案。
\(g[i][j]\)为从1到第i个坏点经过至多j个坏点的方案。
转移很简单,简单的补集容斥即可。
可以用g来求出dp。
而因为S的大小为1e6
所以第二维最大为20.
T4
士兵占领原题。