CF1320

Codeforces Round #625 (Div. 1, based on Technocup 2020 Final Round)

A

\[\large\begin{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 \to p_{i+1}\) 的贡献,若 \(dis_{p_i}=dis_{p_{i+1}}+1\),得 \(p_i \to p_{i+1}\) 在最短路上,如果 \(p_i\) 存在其他出边指向的点 \(x\) 也满足 \(dis_{p_i}=dis_{x}+1\),则最大值加 \(1\),若 \(dis_{p_i} \ne dis_{p_{i+1}}+1\),则最大值和最小值都加 \(1\)

C

将怪兽看作平面上的点,那么两个装备的选取就是在平面上选出一个矩形,收益为矩形内的点。将怪兽和装备都按 \(x\) 排序后进行扫描线,用线段树支持区间加和查询区间最大值即可。

D

因为是 \(110\)\(011\) 相互变换,所以无论怎样变换,两个 \(0\) 之间 \(1\) 的个数的奇偶性不会变,将 \(1\) 的个数的奇偶性哈希后即可快速判断。

E

先将起始点和关键点建虚树,然后先做从儿子更新父亲,再做从父亲更新儿子即可考虑所有情况。

F

先将所有方块都看作有颜色,然后从最外围不断向内删无颜色方格。若一个方块被无颜色的激光或两束不同颜色激光打到,则该方块一定无颜色,需删去,然后继续延伸该激光,实现类似搜索。若一束有颜色的激光路径上的方块都被删去,则无解。

posted @ 2020-10-17 21:33  lhm_liu  阅读(195)  评论(0编辑  收藏  举报