2025/3/8 攀山小队比赛总结

考试中

8:30 左右发了题,看完题以后立刻知道了题目的分类(\(A, D\) 图论,\(B, C\) 状压)。

8:36 写 \(C\),手模拟了一下样例发现状态是容易的(\(f_{j, s, k}\) 表示当前的剩余的体力为 \(j\),且唱过的歌曲状态为 \(s\),上一次唱的是 \(k\)),但由于之前经常写状压逆推写挂,因此写了记忆化搜索。

9:40 的时候写完了(其实早就写完了,但是把题目看错了一点),样例跑得很快(但是发现不会上记忆化...),害怕跑得太慢于是就只写了 \(F_m\) 为体力的记忆。

9:45 中途上了一个厕所,然后开始看 \(A\),看数据范围第一感觉是 Floyd,再看了一眼就感觉 \(n^2C\) 的正解是容易的(把每个点拿出来放 vector,然后暴力拿出来计算换成的颜色)。发现余数不满的情况可能会 WA 掉,于是就多 copy 了 \(2\) 份。

10:00 写 \(C\) 的对拍,跑了很久感觉自己稳了,但是突然跑出了一个 WA 的样例,自己测了一下发现是暴力写挂了,干脆就没有拍了。

10:15 开始写 \(B\),不知道为什么写了一个 \(n^2\) 类似于背包的东西(好像 \(k \ge 5\) 的情况没有判,可以多得 \(10\) 分),赛后发现前缀最大值会让区间一直保持,可能会多选出大于 \(k\) 的物品。

10:45 水了一会以后开始写 \(D\),很明显从叶子节点往外搜。可以考虑树形 DP(但我写完后就错了,第二个样例总是过不去),然后赶紧写了一个类似于分层图的东西,可是每个点的属性不同并且权值是全局更新的所以不好写,样例没过但是判对了无解和 \(0\) 的情况。

11:40 写不出 \(D\) 了以后就开始检查 freopen,然后准备了一下就交了。

总结

  1. \(A\) 是一道简单题。
  2. \(B\) 的思路是错的,应该用 \(f_{i, j, k}\) 表示当前考虑到第 \(i\) 个物品,已经确定了 \(5\) 个物品为 \(j\) 的状态,选了 \(k\) 个物品的最大值。
  3. \(C\) 的状态是对的,感觉以后都不想再写记忆化了,直接顺推即可。
  4. \(D\) 是一道次短路/树形 dp,赛后过了。
  5. 状压的状态一般都比较简单,但是要考虑转移的写法,似乎最好写的就是暴力顺推。
posted @ 2025-03-12 16:55  Dark_Figure  阅读(15)  评论(0)    收藏  举报