ラベル 区間に辺を張るテク の投稿を表示しています。 すべての投稿を表示
ラベル 区間に辺を張るテク の投稿を表示しています。 すべての投稿を表示

2025年7月13日日曜日

ミラティブ プログラミングコンテスト2025(AtCoder Beginner Contest 414)

 Eまで五完。
 またレートを落としてしまったが、大失敗というわけでもないので……。

コンテスト後のツイート

F - Jump Traveling

 解説&解説放送でAC。

 後一歩で解けたのではないか? とコンテスト終了時には思っていたが、本質が分かっていなかった。

 ウニグラフのときの遷移の処理が難しいが、各頂点について、「その頂点についてk歩目に行く」というのは二回遷移してあれば十分、というのがポイントで、それで計算量を減らすことができる。

 言われてみれば分かるが、思いつきにくい計算量の減らし方だった。
 辺属性のDPを考えているとき、頂点の出入りで計算量を減らせる、というのは気付きにくい。


G - AtCoder Express 4

 解説放送を見てAC。

 「区間に辺を張るテク」は聞いたことはあった気もするが、内容は覚えておらず、今回初めて実装した。
 理解するのは難しくないが、実装は結構面倒くさいね。

2023年12月21日木曜日

Codeforces Round 916 (Div. 3)

 Gが解けず。G1を終了二分後にAC。

コンテスト後のツイート

G2. Light Bulbs (Hard Version)

 この解説の方法でACした。

 区間に値を割り振り累積xorを取ると、0のところで区間が完全に分かれるので、最低何個点灯させればよいかは分かる。
 さらに、「同じ値が二個出てくる区間」について考えると、これも他と独立していることが分かるので、そうでない部分のindexの個数を掛け合わせれば良い。

 なお、ちゃんと理解していないが「区間に辺を張るテク」(セグ木を使うもの。検索すれば出てくる)でも解けるらしいので、こちらでも書けるようになっておくべきか。