D - NPCA Network Editorial by nok0


次数が \(1\) の頂点およびその頂点を繋ぐ辺を削除する操作を可能な限り繰り返した後、次数が \(2\) 以上の頂点が残っているかどうかでも閉路判定を行うことが出来ます。

\(S=\{ 1, 2, \ldots,N\}\) とすると、頂点 \(i\) の次数は \(\mathrm{Query}(S) - \mathrm{Query}(S \setminus {i})\) で求められます。\(N+1\) 回のクエリで各頂点の次数を特定したあと、公式解説と同様の方法で、次数が \(1\) の頂点に隣接する頂点を探すことを可能な限り繰り返すことで、 \(2N\log_2 N + N\) 程度の質問回数でこの問題に答えられます。

posted:
last update: