CF804F Fake bullions
说实话这题根据套路应该很容易做出来,但是感觉想要通过思维做出来 … \dots …
一个二合一的题目。
P a r t 1 \tt Part\ 1 Part 1
首先考虑题目给定的限制,如果 u → v u \to v u→v 而且 u u u 的第 i i i 个人有金条,那么 v v v 中第 j j j 个人有假金条当且仅当 S u x + i = S v y + j S_ux + i = S_vy + j Sux+i=Svy+j 根据 L u c a s \tt Lucas Lucas 定理可以得到符合条件当且仅当 gcd ( S u , S v ) ∣ j − i \gcd(S_u, S_v) | j - i gcd(Su,Sv)∣j−i。
我们考虑这个的传递性,也就是 gcd ( path ( u , v ) ) ∣ j − i \gcd(\text{path}(u, v)) | j - i gcd(path(u,v))∣j−i。对于竞赛图我们不妨考虑缩点之后再还原。
因为竞赛图缩点之后的特殊性质,每个点都向后面的所有点连边,所以可以直接根据拓扑序列进行计算。
对于一个点因为同余的性质可以得到 a n s i = c t b e l i × S i gcd ( b e l i ) ans_i = \dfrac{ct_{bel_i}\times S_i}{\gcd(bel_i)} ansi=gcd(beli)ctbeli×S