最終更新: 2021-06-21T21:06+0900
すごく難しいです。答えの出し方に確証が持てないまま、とりあえずグラフとして解答を書いた。クエリ0に応じて辺を追加する。クエリ1に応じてノ
次にクエリ0では Y=X+1 だという制約を思い出して、グラフを配列上に配置した。しかしこれでは多少効率が良くなれど TLE は解消しない。制約はノ
局所の変更を全体に(対数時間で)波及させるのに BIT がまず浮かぶ。何を記録しようか。階差の累積値かなと思
結局 BIT は使わなか
階差を使う解法は完全に「Y=X+1 (T=0 の場合)」という制約に依存しているので、と
解説が公開された。プラスかマイナスか、そんな単純な関係や
Y=X+1 (T=0 のとき) という条件が外れた厳しい方の制約だけど、X から Y へ至る異なるパスがクエリ0によ
連結なノ
全部 Union-Find に乗せたいけどうまくいかない。Unite は当然として、Find で集合の代表を書き換えるタイミングでもごに
自分がやりたいのはたぶんこういうの。や
ところで、Ruby のようなスクリプト言語と C++ の実行時間が接近しているときは、入出力がネ
こ
ノ
偶数世界と奇数世界? これはノ
や
10 11 | D[a] *= D[g] V[a] += D[a]*D[g]*V[g] |
↑ここは無駄なことをしてる。修正版はこう↓
10 11 | V[a] += D[a]*V[g] D[a] *= D[g] |
Union-Find でグル
ノ
これも重み付き UnionFind。ノ
偶奇を一体でぐち
あ find メソ
これだけの学びがあるのは企画の趣旨に照らして(そうでなくても)、すばらしい良問だ