CF1517
A/B
- 略
C
- 赛时打了一个正确性说不明白的做法。
- 一个优秀的做法是按照对角线一条一条求,找到当前对角线上的剩余次数1,在1上面的往下扩展,在1下面的往左扩展,可以发现这样是唯一的。
D
- 可以发现走 k / 2 k/2 k/2步之后原路返回即可,因此不需要记录终点,直接记录起点为DP状态即可。
E
- 最终的样子为 ( P ) C C . . C + P C ∗ n + P P . . P ( C ) (P)CC..C+PC*n+PP..P(C) (P)CC..C+PC∗n+PP..P(C)或 P P . . P C C . . C PP..PCC..C PP..PCC..C
- 前缀和加线段树即可。
F
- 期间想错了两次题意,并分别尝试去打了这两种假的做法Orz。
- 首先考虑枚举 r 0 r_0 r0,求出 r < r 0 r<r_0 r<r0的方案数,那么要求每一个1点周围 r 0 r_0 r0距离内一定要有一个0点。
- 因此相当于是对于所有01方案,求出所有0点,半径为 r 0 r_0 r0能够覆盖所有1点。
- 固定方案之后是一个简单的贪心,记录 f , g f,g f,g分别表示子树内最近的0和最远的1,在转移的时候匹配一下,可以发现如果 f + g > r 0 f+g>r_0 f+g>r0,那么 g g g需要子树外的一个点来贡献,并且在子树外面这个点一定比 f f f要优,因此就可以 f f f去掉。
- 因此只需要记录当前子树内是 f = ? f=? f=?还是 g = ? g=? g=?,转移可以用前缀和优化,总共复杂度 O ( n 3 ) O(n^3) O(n3)。
G
- 显然应该是网络流。
- 由于是四个不能同时存在,所以应该考虑串联的图。
- 按照 x , y x,y x,y的奇偶性分成四类 1 1 1到 4 4 4,可以发现题目给出的条件恰好是 1 1 1到 4 4 4的一条路径,因此直接串联即可。
- 注意由于有负数,判奇偶性的时候不能 ( x + y ) % 2 = 1 (x+y)\%2=1 (x+y)%2=1,还有可能是 − 1 -1 −1。

本文提供了CF1517比赛的题解,详细解释了从A到G题目的解题思路及算法实现,包括对角线扫描、DP状态记录、前缀和优化等技巧。
251

被折叠的 条评论
为什么被折叠?



