基环树和点度数相关的计数:CF1863G

https://codeforces.com/contest/1863/problem/G

首先建图,然后分析出交换在图上的变化,发现每条点最多只有一个入边标粗,求最终形态。

首先可以猜答案为 ∏ v ( i n v + 1 ) \prod_{v}(\mathrm{in}_v + 1) v(inv+1),但是环上会有不合法的和重复的。

基环树和点度数相关的计数:CF1863G_第1张图片
发现以下情况会重复:

基环树和点度数相关的计数:CF1863G_第2张图片
总共有 ∑ 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=1kinci1 种,加上之前不合法的有 ∑ 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=1k(inci+1)i=1kinci)other v(inv+1).

你可能感兴趣的:(基环树,计数)