11.4模拟赛总结
时间安排
- \(7:40 - 8:00\) 开题。把题都看了一遍。 \(T1\) 看起来有点神秘。 \(T2\) 想很难的构造。 \(T3\) 看起来像比较正常的计数题。\(T4\) 应该是扫描线
- \(8:00 - 9:20\) 尝试做 \(T1\)。最开始推出来每个数会在一个 \(4\) 元环中,然后发现一个数变成目标数对每种操作数量的奇偶性的限制是一定的。也就是可以把两种操作分开考虑。思考对于一个初始都为 \(0\) 的序列,每次能够选择一段区间异或 \(1\),把原序列变成目标序列的最小操作次数是多少。最开始想的是\(1\) 内部 \(0\) 的段数加 \(1\),后来发现就是 \(1\) 的段数。然后以为会了。后来发现存在一个一个长度为 \(2\) 的 \(2\) 元环。对于这样的变换只有两种操作的和的奇偶性是确定的。但是还有两种选择。最开始想的是模拟或者贪心,但是能举出反例。后来想到可以 \(dp\)。然后就写了,一遍把大样例过了。感觉不水,就跳了。
- \(9:20 - 9:40\) 去看 \(T2\)。还是觉得题中的构造过程很抽象。但是发现直接输出目标序列有 \(45pts\)。感觉这样的题应该过的不会很多就先看 \(T3\) 了。
- \(9:40 - 11:00\) 开 \(T3\)。最开始感觉很困难。先列了暴力的转移方程。后来发现可以不枚举魔法编号而是枚举攻击力。这样就多了 \(15\) 分。顺着这个思路,发现 \(b_i = 0\) 的可以直接矩乘,这样就有了 \(50\) 分。然后就先把暴力写了。写完能过部分分的大样例,感觉很不错。然后发现每次的转移矩阵的形态是倍增出现的,可以预处理长度为 \(2^i\) 的转移矩阵的乘积,然后最后跑一遍倍增。时间复杂度是单 \(log\)。只需要在原来代码加 \(5\) 行就够了。写完后过了所有大样例。不放心,就对拍了,发现拍上了就跳了。
- \(11:00 - 12:10\) 感觉会 \(T4\) 挺多部分分,然后先写了第一档和扫描线总共三十分。最后第一档的样例没有调出来。
成绩
100 + 45 + 70 + 0 = 215
rk3
被学弟薄纱了。
T2A了一车。出题人把构造方案放到大样例里了,只要看过大样例的都 \(A\) 了。乐。
T3 \(n\) 小于等于 \(10^8\) 我开的 \(int\),挂了 \(30\)。NB
T4 扫描线不知道咋挂了。
反思
- 还是不太擅长构造题。感觉自己跳过 \(T2\) 先去做 \(T3\) 的思路是正确的。但是做完 \(T3\) 后应该在花些时间给 \(T2\) 的。(最起码看看大样例)但是 大考应该不会有这种情况。最起码不给构造的话应该很多人过不了的。
- \(T3\) 犯了低级错误,下次应该注意。
- \(T4\) 在写的时候注意力不够集中,导致代码效率比较低,写的比较慢。在比赛快结束的时候应该稳住心态。

浙公网安备 33010602011771号