リンク
A問題
最速ACが1分弱とはいえ、3分もかけているのは遅すぎる。mod繰り上げに慣れすぎて、単純な一致比較を書くのに手こずった...(自分でもあり得ないと思ってる)
それにstringを再利用しないのもタイムロスに繋がった。
コンテスト始めに競プロモードに脳が移行してないのも原因かも知れないので、コンテスト数分前から別の灰色diffで慣らすようにする。
ノーペナなのは、とても偉い。
B問題
最近ずっとBFSばっかり書いてたので、特に問題なし。
C問題
本当に辛かった。A_C(外枠)の数から残りを引いた数の最小値を取るのかと思いきや、違うらしく、コード書き間違いを疑ったが、自分のプライドをへし折ることで、ようやく解放が間違っていることに気づけた。テストケースをたくさん導入できるツールを使ってよかった。
外枠と余りの差を埋めて均一化させることが最大値に繋がるので、それをして定数倍時間で突破。代償として3ペナが発生してしまったので、2分探索を普通に書けばよかった。
D問題
これ解けたのは我ながら偉いと思った。各合成の際に偏らないように、平均値から漏れた余りを2の最大のK乗から分配していこう...などと考えてたら、3番目以降の処理をうまく書けなくて、再帰関数を書いてAC!とはいきませんでした。最大非バランス値の式を普通に書き間違えていました。いつもテストケースだけで正常さを判断してますが、上からコードを読んで役割を逆構築できるか検証することで突破します。脱脳死。
E問題
O(N^2)解法しか思いつきませんでした。かなりかなり考えました。ここで20分無駄にしなかったらF問題解けたかも。確率による精度の保証が想定解でした。正直まだ理解してないのと、majority voteという謎アルゴリズムが真の想定解らしいのと、仕上げにE8さんの本を読み切ったとか抜かしておいてモルカトル法が定着してなかったらしいのがとても恥ずかしいです。
F問題
謎!解説を読んでもよくわからない...
Dijkstraを全てに対して回すのかと思いきや、そうでは無いらしい。かなりグラフ探索やってきたつもりだったので、解法に自信が持てないのは本当に終わってる。改めて、今自分が何をなぜ解けるかを振り返ろうと思う。
G問題
実装方法がわからなくて、あとラスボス問題ということで飛ばした。解説がとても丁寧に書かれていて、脱帽。指数的母関数についてある程度わかった。ちゃんとupsolveはしたいし、なんなら類似問題も解いてみたい。
おまけ
今回は緑中位perfでギリギリ目標に達せたらけど、あと2週間で水perfを取らなくてはいけない身なので、圧倒的成長をみせないと非常にまずいところ。
ちゃんと振り返りで見えた伸び代を潰していきたい。