https://codeforces.com/contest/1863/problem/G
首先建图,然后分析出交换在图上的变化,发现每条点最多只有一个入边标粗,求最终形态。
首先可以猜答案为 ∏ v ( i n v + 1 ) \prod_{v}(\mathrm{in}_v + 1) ∏v(inv+1),但是环上会有不合法的和重复的。
发现以下情况会重复:
总共有
∑
i
=
1
k
i
n
c
i
\sum_{i=1}^k\mathrm{in}_{c_i}
∑i=1kinci 种,重复有
∑
i
=
1
k
i
n
c
i
−
1
\sum_{i=1}^k\mathrm{in}_{c_i}-1
∑i=1kinci−1 种,加上之前不合法的有
∑
i
=
1
k
i
n
c
i
\sum_{i=1}^k\mathrm{in}_{c_i}
∑i=1kinci 种,所以总方案为:
∏ cycles ( ∏ i = 1 k ( i n c i + 1 ) − ∑ i = 1 k i n c i ) ⋅ ∏ other v ( i n v + 1 ) . \prod_{\text{cycles}}\left(\prod_{i=1}^k(\mathrm{in}_{c_i} + 1) - \sum_{i=1}^k\mathrm{in}_{c_i}\right)\cdot\prod_{\text{other }v}(\mathrm{in}_v + 1). cycles∏(i=1∏k(inci+1)−i=1∑kinci)⋅other v∏(inv+1).