21noip赛前20天 day10 简要题解

[比赛入口](http://zhengruioi.com/contest/1025)

A. 不知道高到哪里去了

莫名其妙题

B. 身经百战

考虑 dij,直接离散化,排序,相邻连 \(1\) 操作的边,\(2\) 操作的边连上,跑一边最短路即可。

C. 跑得比谁都快

发现一件事:等过一次红灯之后,就从 \(0\) 开始了。于是只用求出第一次停的位置在哪里即可。

D. 人生经验

不会,但其实也是把题看错了很久,把题意弄对就想看题解了。

考虑其生成方式,就是每次从头冒出一段,翻过来就是从头往后,每次消掉一段。由于偶数位用处不大,考虑两个一起加,那么要么我们什么都不做,要么先加一个然后把前面都消掉再加一个。那么一个判定就是设 \(f_{i,a,b}\) 表示前 \(i\) 个加上一个 \(a\) 能不能变成 \(b\)。转移是 trivial 的。

那么我们把状态压进去 dp 套 dp 即可。可以考虑实现一手。

bonus: 考虑如果不要求删完,也就是可以每次选三个删,那么怎么判定/计数呢?

posted @ 2022-08-29 14:31  syzf2222  阅读(35)  评论(0编辑  收藏  举报