流光协奏后续 || 2025 码蹄杯国赛

戒断

我有理由认为看天依演唱会对学习有很大帮助。注意到马蹄杯省赛 rk142,国赛 rk59。

打的最舒服的一集。


链接:link
题解:link

时间: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\)):

\[\sum _{i=1} ^n \sum _{j=1} ^n \sum _{k=1} ^n \tau(\gcd(i,j,k)) \times \gcd(fib_i , fib_j , fib_k) \]

注意到 \(\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 来做,得到式子:

\[\sum _{i=0} ^{\min (a,m)} \binom a i \sum _{j=0} ^{\min(a+b-i , m-i)} \binom {a+b-i} j \]

但是要求固定上标的组合数前缀和,会不了一点,打表又会代码长度超限,所以又跳去看 T5 了。

可是 T5 也不怎么会,这时候突然想到可以换个东西枚举,那么换成枚举 B,剩下的 A 显然要么一步到 B,要不一步到 C,就可以覆盖全部结果,然后推了推得到:

\[\sum _{i=0} ^{\min(b,m)} \binom b i \sum _{j=0} ^{\min(a,m-i)} \binom a j 2^{j} \]

注意到这样后面那个二项式系数的上标就是定值了,所以就可以前缀和了,然后就神奇地过了。

剩余 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,赢赢赢。

突然发现场切了一个数论一个组合计数,很神奇了。

posted @ 2025-08-25 16:42  little__bug  阅读(161)  评论(0)    收藏  举报