2021年12月26日日曜日

Codeforces Global Round 18

 pretest三完で終了。
 Eは実質できていて、最後に間違いに気付き書き換えたものが間に合っていたら通っていました。うーん悔しい。

コンテスト後のツイート

D. X(or)-mas Tree

 解説AC。
 考察が足りていなかった上、誤読もしていた。

 木のpathに関する問題ということで(あと、STATUSを見たらPyPyでTLEが多く出ていたこともあり)、オイラーツアーとか、HL分解のようなことを考えてしまっていた。ちょっと苦手意識があるせいなのかね、こういう方面しか考えられなかったというのは。

 が、そんなことは必要なかった。pathのxorだけを考えたいので、1~頂点xまでの累積xorをNODE[x]とすると、path u~v間のxorはNODE[u]^NODE[v]となる。これを使えば、エルフの条件も、uとvの間に辺を張ったものと解釈できる。
 なので、後は、pathの距離が-1になっているものを後回しにしてDFS(つまり、01BFSみたいにする)していけば良い。

 なお、誤読というのは、エルフに与えられるのが「距離を二進法にしたときの1の個数の2で割った余り」ではなく、単純に「距離を2で割った余り」だと思っていた、というものです。

 これ、本番中実装してWAが出ていたら気付けなかった気がする……。

0 件のコメント:

コメントを投稿