CF1916
重点在 E
如果 \(lcm(a,b)\neq b\),则是一个答案。
否则答案是 \(b\times\frac{b}{a}\)。
先前缀和。设前缀和 \(s_i\)。考虑 \(s_i\) 减去多少个 \(1\)。
-
若 \(i=1\),直接就是答案;
-
否则答案会减去 \(s_i/3\),若 \(s_i\mod 3=1\),则答案还要再减去 \(1\)。
\(n=1,3\) 的答案已经有了。
对于 \(n\ge 5\) 的,前 \(n-2\) 个答案可以通过将 \(n-2\) 的答案 \(\times100\) 得到。而令 \(x=\dfrac{n-1}{2}\),\((10^x+3)^2,(3\times 10^x+1)^2\) 都是两个长度 \(n\) 的平方数。
一个经典的 Trick:
\(lst[u]\) 为 \(u\) 向上第一个与 \(u\) 同色的结点。
一条自上而下的 \(u\rightarrow v\) 的路径的颜色数量,就是 \(u\rightarrow v\) 上 \(lst\) 在 \(u\) 上面的结点个数。(每种颜色只会在 \(u\rightarrow v\) 最上面的位置被算一次)
然后枚举 LCA,用线段树维护。