Codeforces Round #625 (Div. 1, based on Technocup 2020 Final Round)
A
[largeegin{aligned}
c_{i+1}-c_i&=b_{c_{i+1}}-b_{c_i},forall i in [i,m) \
b_{c_i}-c_i&=b_{c_{i+1}}-c_{i+1},forall i in [i,m) \
end{aligned}
]
用桶存 (b_i-i) 值相同的 (b_i) 的和,和的最大值即为答案。
B
建反图跑 (bfs) 求出每个点到 (n) 的最短路 (dis_i)。考虑 (p_i o p_{i+1}) 的贡献,若 (dis_{p_i}=dis_{p_{i+1}}+1),得 (p_i o p_{i+1}) 在最短路上,如果 (p_i) 存在其他出边指向的点 (x) 也满足 (dis_{p_i}=dis_{x}+1),则最大值加 (1),若 (dis_{p_i} e dis_{p_{i+1}}+1),则最大值和最小值都加 (1)。
C
将怪兽看作平面上的点,那么两个装备的选取就是在平面上选出一个矩形,收益为矩形内的点。将怪兽和装备都按 (x) 排序后进行扫描线,用线段树支持区间加和查询区间最大值即可。
D
因为是 (110) 和 (011) 相互变换,所以无论怎样变换,两个 (0) 之间 (1) 的个数的奇偶性不会变,将 (1) 的个数的奇偶性哈希后即可快速判断。
E
先将起始点和关键点建虚树,然后先做从儿子更新父亲,再做从父亲更新儿子即可考虑所有情况。
F
先将所有方块都看作有颜色,然后从最外围不断向内删无颜色方格。若一个方块被无颜色的激光或两束不同颜色激光打到,则该方块一定无颜色,需删去,然后继续延伸该激光,实现类似搜索。若一束有颜色的激光路径上的方块都被删去,则无解。