A: Mex Query
给出若干个非负数, 问最小的未出现的数
排个序直接扫描一下就好了
别问为啥wa3次,问就是我弱智
B: icebound的商店
一开始没看到 "icebound的商店里一共有15件商品" 结果WA了一次
算出前15个商品的花费, 然后预处理dp, f[i][j]表示前i种商品组成j花费的方案数, 暴力转移即可
C: Nim Game
首先要知道nim博弈的结论: 直接按每堆数量取异或, 不为0则必胜
然后这题每堆石子是固定的, 所以预处理前缀异或和然后O(1)查询即可
D: Defending Plan Support
树形dp. 首先随机选取一个根, 然后预处理出f[i]表示i的子树上所有点的权值和, g[i]表示i的整颗子树对当前i的贡献
转移 $ f[i]=w[i] + \sum_{j是i的儿子}\quad\ f[j] $ , $ g[i]=\sum_{j是i的儿子}\quad\ (g[j]+f[j]*dis(i,j)) $
其中 w[i] 表示i点的权值
然后从根再做一次dfs, 不断将父亲节点当做子节点的子树并将贡献向下传递给子节点即可
E: Bitmap
首先注意到判断两个矩阵是否能靠调整偏移量变成相等, 只需要判断其相邻元素的差值是否相等
然后对于这种区间比对, 不难想到用哈希来验证
为了压缩时间, 需要吧所有行的哈希再哈希一次, 然后比对矩阵的"所有行"和第一列是否相同即可
F: 神殿
从高向低逐位扫描, 如果l,r都含这一位, 则加入答案, 否则将 $ 2^i - 1 $ 加入答案并跳出即可
另如果从当前位开始r后面所有位都是1, 那么显然将这些都直接加入答案并跳出即可
G: K Multiple Longest Commom Subsequence
没看, 留坑(咕咕咕
H: 跑图
把所有1的位置入队后直接做bfs即可
I: Power Seq
除了分块并没有想到更好的做法(咕咕咕
J: Beautiful Array
没看, 留坑(咕咕咕
K: 520
裸的快速幂...
L: icebound的账单
直接求和判正负