流光协奏后续 || 2025 码蹄杯国赛
戒断。
我有理由认为看天依演唱会对学习有很大帮助。注意到马蹄杯省赛 rk142,国赛 rk59。
打的最舒服的一集。
时间:5h (2025.08.24 14:00~19:00)
题目数:12
难度:
T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | T10 | T11 | T12 |
---|---|---|---|---|---|---|---|---|---|---|---|
\(\color{#FE4C61} 红\) | \(\color{#FE4C61} 红\) | \(\color{#F39C11} 橙\) | \(\color{#BFBFBF} ?\) | \(\color{#3498DB} 蓝\) | \(\color{#BFBFBF} ?\) | \(\color{#52C41A} 绿\) | \(\color{#52C41A} 绿\) | \(\color{#FFC116} 黄\) | \(\color{#BFBFBF} ?\) | \(\color{#FFC116} 黄\) | \(\color{#FE4C61} 红\) |
*800 | *900 | *1000 | *? | *2100 | *? | *1900 | *1700 | *1300 | *? | *1200 | *900 |
AC:8/12 (T1 T2 T3 T7 T8 T9 T11 T12)
Penalty:09:37:51(1)
Rank:59/2520
Au
省流:
T1 T2 T3 T12 签,不知道为什么要放这么多签。
T11 trie 板子。
T7 打表猜结论 + 莫反。
T9 dij 板子。
T8 组合计数,但是思路错了好几次浪费了不少时间。
T5 树上分块 + bitset,不过没调出来。
其他的没看。
因为都搞好了才发现电脑没摄像头,所以又换了个电脑,晚了 10min 入场,喜提 80min 罚时。
快速跟榜,发现好多签,切了。
跟榜开 T11,一眼 trie,切了。
开 T7,求一个式子,但是式子看起来很吓人,不过考虑到过的人不少,所以应该不是很难。先把式子放一下(\(n \le 10^6\)):
注意到 \(\gcd(i,j,k)\) 部分可以莫反做掉。这里要感谢教练给我的容斥题单,让我在懒得推容斥的情况下学了莫反。
但是 fib 部分很不好处理,先猜了个结论,认为这个 gcd 一定为 \(1\),但是打表发现并不是,但是却意外地发现 \(\gcd(fib_i , fib_j , fib_k) = fib_{\gcd(i,j,k)}\),在 \(30\) 以内成立,可以认为一定成立了。
于是就简单了。写写写。一发过了。
开 T8,想了一个 \(O(n^2)\) 的 dp,尝试优化但是并不会,跳了。
开 T9,发现好水,就是 dij 板子加上一个暴力状压。但是 T 了一发,原来是我 dij 板子对 dis 数组的初始化是 memset 的,导致多测 T 飞了,改了就过了。
回来看 T8,注意到 C 没用,顺序没用,有用的只是 A 的数量和 B 的数量,分别设为 \(a,b\),想到枚举有多少个 A 操作了 \(2\) 次,但是推了一会儿甚至把代码写出来了才发现假了,因为我们根本不关心操作过程,只关心结果。
所以想到枚举有多少个 A 变成了 C,剩下的 A 都当成 B 来做,得到式子:
但是要求固定上标的组合数前缀和,会不了一点,打表又会代码长度超限,所以又跳去看 T5 了。
可是 T5 也不怎么会,这时候突然想到可以换个东西枚举,那么换成枚举 B,剩下的 A 显然要么一步到 B,要不一步到 C,就可以覆盖全部结果,然后推了推得到:
注意到这样后面那个二项式系数的上标就是定值了,所以就可以前缀和了,然后就神奇地过了。
剩余 1h,继续看 T5,根据这个数据范围,很有可能是 \(O(\frac {n^2} w)\) 或者 \(O(n \sqrt n)\) 的做法,先想了树剖套线段树,发现不行;直接 bitset 不行;但是分块 + bitset 貌似可以!按照深度分为最多 \(\sqrt n\) 个块,维护一些 bitset,那么操作就都是 \(O(n \sqrt n)\) 或者 \(O(\frac {n^2} w)\) 的了!
于是发明了算法:树上分块(
但是以前没写过,所以没调出来,悲。
没然后了。
晚上发现 rk59,赢赢赢。
突然发现场切了一个数论一个组合计数,很神奇了。