Educational Codeforces Round 64 (Rated for Div. 2)D. 0-1-Tree(并查集)

题目链接:https://codeforces.com/contest/1156/problem/D

题意:对于数对(x, y),从x到y,有三种走法:

  • 从x到y只走0边
  • 从x到y只走1边
  • 从x到y先走0边后走1边(也就是0只能在1前面走)

问一共有多少种走法?

思路:并查集统计一下0边1边的联通块大小,那么对于节点 i 的贡献就是cnt1[find1(i)] * cnt2[find2(i)] - 1,统计所有节点的贡献即可。

#include
#define ll long long
#define debug(x) cerr<<#x<<'='<<(x)<

 

你可能感兴趣的:(【并查集】)