ARC109

3完。重かった。妙に悔しさが残る。週2ratedは多いとか言いつつ、明日ABCがあってもよかったなとか思ってしまう。最近ボーっとしてることが多かったけど、コンテスト中の調子はよかった。

A - Hands

少し考えてわからないのでダイクストラを貼った。短時間でできる実装を思いつかないというより、考える気力がなかった。これは最近の傾向で、あまりよくない。脳死で競プロやるって何の意味があるんだ。

(解説を見て)これは難しい。自分は現実的にダイクストラするしかなかった。

B - log

面白い。長さn+1の丸太がなければn円が答えなので、n+1を小さいほうから貪欲にとっていくのがいい(大きいのをとっても意味ない)(半端は捨てれるから気楽)。そうなると見た目は二分探索。しかしnがでかいのでオーバーフローしてしまう。それなら、doubleを使って方程式を解き、前後10000を全探索すればいい。この10000という数をどう決めたかは説明が難しい。大きいとオーバーフローやTLEの危険があり小さいと誤差で正解を見逃す可能性がある。どちらもめちゃくちゃ余裕があるけど、誤差がよくわからないので、僕の心理的バランスがここだったということだなあ。

サンプルに109の繰り返しがあり、渋谷なら428じゃないのかと疑問に思ったけど、今回はARC109だし109も渋谷に関係が深い数だった。

(解説を読んで)n+1の丸太でカバーできるのが2*10^9未満なのは明らかだから、その範囲で二分探索すればよかったのか。

C - Large RPS Tournament

問題文読むの大変。読めばイメージ通りの内容だった。1回戦のカードはO(n)の長さの周期がありそう。すると2回戦も?nが奇数だとしても2個並べれば周期になる。n*2人で試合をすればn人になるからまた同じことができそう。サンプルに偶数のnがなくて少し不安だったが、さすがに大丈夫そう。ここで、問題を読み違えたり考察を間違えたりしてないか確認するためにサンプルを見て、k=1を1人トーナメントと勘違いしサンプル2で悩んだ(制約が1以上だから人数が1以上だと思ってしまってた)。あとはシミュレーションをk回繰り返し端っこを出力する。

D - く / L

Eの問題文を読むのがめちゃくちゃ時間かかりそうだったので、解けそうなDに注力した。見た目はかなり簡単そうだが実装はクソほど重い。愚直BFSが間に合う制約でさえ1時間はかかる。4方向あるのがつらすぎる。グラフ構築(30*30で中央からの距離を求めるのをやった(端っこは雑なままで中央だけ取り出して使う))も大変だったが、入力を受け取るのがまた大変(どこがくの字の真ん中になりどっちを向いているか)。時間の余裕がないので、遠いときはどうせ(縦横斜めに)1遠くなったら操作回数が2増えるんでしょというところから進まなかった。それで終了1分前に書き上がったがサンプルが全く合わず終了。コードが長くなったのは実力だろうし、サンプルが一発で合わなかったのも悔しい。

(ACして)サンプルが通らなかったのは、1, 2, 4, 8 を 0, 1, 2, 3 に直してないからだった。遠いものの処理も間違っていたようで、方針を変え法則性を見つけて実装することでACした。かなり時間がかかった。

(解説を見て)これは無理だ。重心の位置で区別できるのは、気づけば俺でも使えるテクニック。しかし気づく力がない。完全に手合い違いだった。