2021年6月14日月曜日

Codeforces LATOKEN Round 1 (Div. 1 + Div. 2)

 Cまで三完。D、Eを考えていたが解けずに終了。ここまではっきり失敗したのは久しぶりな気がする。


D. Lost Tree

 「木は二部グラフ」というキーワードすらほとんど浮かんでいない。
 クエリの回数がn/2というところから、二部グラフは考えるべきなんですよね……。

 そのキーワードを思い付くことが重要で、その後は、一回目のクエリで二部グラフのどちらに属しているか判断できる、と気付くところがポイントですね。
 二部グラフを使おうと思いついていたとして、そこで詰まっていた可能性はありそう。

E. Lost Array

 全ての要素についてクエリで聞いた回数が奇数回になれば良い、というのは分かった。では、それが実現できる最小の回数は? というところで詰まった。
 なんか条件(1の個数や3の個数を調べて……みたいな)がないかと考えていたけど、上手くいかず終了。

 実際は、もっと愚直に構成できるか試してみるべきだった。
 ただ、毎回それをやっていると、$k=n-1$のときにTLEしてしまう。このときは、n回聞けば良いと分かるので、場合分けしてやればACできた。

 公式解説は(理解できていないが)もっと賢い方法でやっているようだけど、上記の方法はコンテスト中に考えたことをまとめただけなので、コンテスト中に通すことは可能だったはず。
 計算量を気にする前に、愚直なやり方で間に合わないかを試してみるべきだった。

0 件のコメント:

コメントを投稿