abc419 G Count Simple Paths 2 题解
abc419_g 题解
赛时通过。考虑这样一种做法:首先在原图中找到一棵生成树,然后对所有非树边的两个端点与 \(1,n\) 建虚树,然后在虚树上暴力搜索所有简单路径。复杂度为 \(O(n\log n+(m-n)\sum ans_i)\)。
考虑正确性:我们发现,如果选出一个非树边集合,那么能够恰好经过这个集合中的所有非树边(不经过其他非树边)的简单路径要么不存在,要么只有一条。所以上面复杂度中,\(\sum ans_i\le 2^{m-n+1}\)。因此复杂度为 \(O(n\log n+(m-n)\times 2^{m-n})\),其中 \(\log n\) 为求最近公共祖先的复杂度。

浙公网安备 33010602011771号