【Atcoder】AGC011 C-F简要题解

*C.Squared Graph

处理出原图 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' aa,在 B B B b → b ′ b\to b' bb都有一条长度为 l l l的路径。

分类讨论如下:

  • ∣ A ∣ = 1 |A|=1 A=1 C C C的连通块数量 = ∣ B ∣ =|B| =B ∣ B ∣ = 1 |B|=1 B=1时同理, C C C的连通块数量 = ∣ A ∣ =|A| =A
  • 否则发现可以通过在一条边上反复横跳,可以走出无限种长度的路径,但是不能改变的路径长度的奇偶性。
    所以若 A , B A,B A,B都是二分图,转换后有2个连通块,否则只有一个。

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(na)+2b2+2bc+c2


D.Half Reflector

手玩找规律:

  • 如果第一个是 A A A,改成 B B B即可
  • 否则将序列左移一位并取反,最后一位改成 A A A

可以发现 2 n 2n 2n次以后序列只会有下面两种情况:

  • A B A B A B . . . ABABAB... ABABAB... B B A B A B . . BBABAB. . BBABAB..轮换
  • B A B A B A . . . BABABA... BABABA...保持不变

情况只取决于序列长度的奇偶。
所以 K ≤ 2 n K\leq 2n K2n暴力双端队列打标记模拟,否则直接输出答案。


*E.Increasing Numbers

任何一个上升数,都可以写成 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=19k910ai1=n,即 ∑ i = 1 9 k 1 0 a i = 9 n + 9 k \sum\limits_{i=1}^{9k} 10^{a_i}=9n+9k i=19k10ai=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))级别的。暴力模拟即可。


*F.Train Service Planning

这题从昨天下午想到现在,摔

传送门

自己理解的出现的问题:

为什么能把 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} Si1,最后调节变量的 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} S0Sn1))

太神仙了,跪了

你可能感兴趣的:(妙,atcoder)