精進GW

随時更新していきます。

https://beta.atcoder.jp/contests/code-festival-2017-qualc/tasks/code_festival_2017_qualc_c
xを抜いてまず成立するか確認します。あとはxを適切に挿入していくだけです。

https://beta.atcoder.jp/contests/ddcc2016-qual/tasks/ddcc_2016_qual_c
実は10^9以下の整数の約数は2000個もありませんというやつです。

https://beta.atcoder.jp/contests/soundhound2018/tasks/soundhound2018_c
FLOW。辺の張り方わすれてWA結構出した…

https://beta.atcoder.jp/contests/tenka1-2016-qualb/tasks/tenka1_2016_qualB_b
DP。O(N^3)でいいですが無駄にO(N^2)にした。

https://beta.atcoder.jp/contests/dwacon2017-prelims/tasks/dwango2017qual_c
場合分けしっかりしましょう。

https://beta.atcoder.jp/contests/agc001/tasks/agc001_b
個人的に好き。実はgcd。

https://beta.atcoder.jp/contests/agc002/tasks/agc002_c
「Ai+Ai+1>=Lとなるiが存在する」が必要条件ですが実は十分でしたってやつ。

https://beta.atcoder.jp/contests/agc010/tasks/agc010_b
とりあえず1回の作業で隣通しのmodNの値が1増えるなぁと思ったのでそれを書いて出したら流石にWAでした…6casesWAと割といい線いくけど。でもそういう見方できるようになったのは成長かなぁ。

https://beta.atcoder.jp/contests/agc019/tasks/agc019_b
とりあえず回文をひっくり返したら同じだなぁと思ってたんですが、そこからもう少し条件をゆるくして、端が同じ文字だったらどうなんだろうと考えたらACできました。本質にピント合わせるのがうまくできましたねこれは。

https://beta.atcoder.jp/contests/agc014/tasks/agc014_b
これも全ての点が偶数回出てることが十分だよなぁと思ったら実は必要でもありましたパターンでした。

https://beta.atcoder.jp/contests/agc013/tasks/agc013_b
徐々に頂点を増やしていくやつ。過去に解説見たことあった。

https://beta.atcoder.jp/contests/cf16-exhibition-final-open/tasks/cf16_exhibition_final_a
dpっぽくしようと思ったら解けた。

https://beta.atcoder.jp/contests/cf16-exhibition-final-open/tasks/cf16_exhibition_final_c
10000なら01111になるわけですがS=a1^a2^...a^nとすれば、a1=10000ならS->S^11111となるわけです。つまり、Sを11111...にxorする作業ができるので、あとは0にできるかどうか確かめればよいです。方法はtrivialなものを除けば1通りに定まります。

https://beta.atcoder.jp/contests/code-festival-2016-qualb/tasks/codefestival_2016_qualB_c
kruskalやるだけ。

https://beta.atcoder.jp/contests/cf17-final-open/tasks/cf17_final_c
N<=12は全探索、N>12なら1or0なのでどっちか確かめるのをO(N)でやるという方針をとったんですが1caseだけWAです。これは通せる気がしません…書き直します。



思ったこと
O(NlogN)の計算量なるのって、mergeする時とsortくらいしかなくですか…?
segtreeもmergeしたものを更新していく作業だし、二分探索もsegtree上で値を見ていると言ってもいいですし。
流石にいろいろ反例があると思いますが、割と当てはまっていると個人的に思いました。