🟩
ABC284-E: Count Simple Paths 解説
問題
頂点 N 辺の単純無向グラフが与えられます.各頂点の次数は M 以下です. 10
頂点を始点とする単純パスの個数を出力してください.ただし 1 を超える場合は代わりに 10^6 を出力してください. 10^6
https://atcoder.jp/contests/abc284/tasks/abc284_e
解説
- DFSを使って解く.Nが大きいので動的計画法で解きたくなる気持ちをグッと抑えよう.
- 実際に数え上げる数は
以上になった時点で打ち切って良いので,DFSで数え上げることができる.10^6 - 既に通った頂点とパスの端を管理するとうまく数え上げることができる.
- 既に通った頂点は参照渡しをうまく活用することでコピーを防ぐ必要がある
- コピーをするとDFSの1度の呼び出しが
になるのでO(N) になるTLE
- コピーをするとDFSの1度の呼び出しが
コード
Discussion