处理出原图 G G G的所有连通分量,转换后的图相当于所有连通分量两两之间合并,假设当前合并的两个连通分量分别为 A , B A,B A,B(注意 A , B A,B A,B可能不同),合并后得到 C C C:
合并规则:
C C C中 ( a , b ) (a,b) (a,b)和 ( a ′ , b ′ ) (a',b') (a′,b′)连通当且仅当存在一个正整数 l l l,使得在 A A A中 a → a ′ a\to a' a→a′,在 B B B中 b → b ′ b\to b' b→b′都有一条长度为 l l l的路径。
分类讨论如下:
d f s dfs dfs染色一遍,设有 a a a个单点, b b b个点数 > 1 >1 >1的二分图, c c c个非二分图。
a n s = a 2 + 2 a ( n − a ) + 2 b 2 + 2 b c + c 2 ans=a^2+2a(n-a)+2b^2+2bc+c^2 ans=a2+2a(n−a)+2b2+2bc+c2
手玩找规律:
可以发现 2 n 2n 2n次以后序列只会有下面两种情况:
情况只取决于序列长度的奇偶。
所以 K ≤ 2 n K\leq 2n K≤2n暴力双端队列打标记模拟,否则直接输出答案。
任何一个上升数,都可以写成 9 9 9个全1数的和(全1数包括0)
假设用了 k k k个上升数,也就是说安排了 9 k 9k 9k个 a i a_i ai使得 ∑ i = 1 9 k 1 0 a i − 1 9 = n \sum\limits_{i=1}^{9k} \frac{10^{a_i}-1}{9}=n i=1∑9k910ai−1=n,即 ∑ i = 1 9 k 1 0 a i = 9 n + 9 k \sum\limits_{i=1}^{9k} 10^{a_i}=9n+9k i=1∑9k10ai=9n+9k
等价于 9 n + 9 k 9n+9k 9n+9k的数位和 ≤ 9 k \leq 9k ≤9k
答案最坏是 O ( l e n ( n ) ) O(len(n)) O(len(n))级别的。暴力模拟即可。
这题从昨天下午想到现在,摔
传送门
自己理解的出现的问题:
为什么能把 S ( a , n ) + S ( q , n ) S(a,n)+S(q,n) S(a,n)+S(q,n)调整成 K K K的倍数?
可以把 S ( q , n ) , S ( p , n ) S(q,n),S(p,n) S(q,n),S(p,n)同时加上一个常数 C C C使得 S ( a , n ) + S ( q , n ) S(a,n)+S(q,n) S(a,n)+S(q,n)为 K K K的倍数,而所有火车时刻整体后移本质上是等价的。
(也就是说多加了一个 p 0 , q 0 p_0,q_0 p0,q0的调节变量。。。)
(DZYO神仙代码里 S i S_i Si实际上是 S i − 1 S_{i-1} Si−1,最后调节变量的 S 0 S_0 S0实际上是 q n + p n ( 即 S n ) q_n+p_n(即S_n) qn+pn(即Sn)(因为区间不交的式子只能限制 S 0 − S n − 1 S_0-S_{n-1} S0−Sn−1))
太神仙了,跪了