from 競技プログラミングで解法を思いつくための典型的な考え方 abc152_f https://atcoder.jp/contests/abc152/tasks/abc152_f
- N=50
- 木の2点を結ぶパスに1つ以上黒があることが条件
- 公式解説
- 包除原理までOK
- 複数のパスの重なり合いに関して「最小共通祖先を求めて木上で累積和」らしい、よくわからん
- 2^20の全パターンでO(N+M)で数えるらしい
- 別解
- 辺が高々50なのでint64に収まる
- パスをビットで表現しておけばORで重ね合わせを計算できる