結果
A,B,CはAC。D,Eは後程AC。パフォーマンス300!ほげー
A - Dodecagon
式にぽいっとするだけですね。3 * r * r。
B - Golden Apple
監視員が見れる範囲が2D+1なのでこれをNで割る。補正(切り上げ)が必要。解説のやり方覚えておきたいですね。
C - Exception Handling
これどこかで見たやつに似ている…(ABC125のC問題)。というわけで、 を求めておいてAiを抜いた時は。とやりました。解説の方針2と同じ。方針1の方がはるかに楽でしたね。
余談
WAでたけど放置してDに取り掛かっていました。結局ACしたのはDも行き詰った1時間後…。ほげー
D - Preparing Boxes
とりあえず真正面から考えると、i=1の時は全部の箱、i=2の時は2,4,6,…の箱、i=3の時は3,6,9,…の箱、i=N/2の時はN/2,Nの箱、i=N/2+1の時はN/2+1の箱…i=Nの時はNの箱を参照となります。つまりi=N/2+1以降は自分の箱しか関係しないために従えば良いということがわかります。
i=N/2のときはNの箱が確定しているからN/2の箱はのつじつまが合うように決めます。以下同様。他の箱の状態がどうなっていても自分の箱でつじつまを合わせることができるので「いいボールの入れ方」が必ず存在します。
早い話Nから決めていくだけです。
余談
if (1 == v[i])//ボール入を入れた Write($"{Ai[i]} ");
お分かりいただけただろうか?*1 コンテスト終わってから気づきました。
E - Sequence Decomposing
寝て起きたら(以下略。勘があってただけというものですが。
- 色ごとに最大値を保存する()
- が色ごとの最小値以下()であれば色を追加する()
- が色ごとの最小値より大きければ()未満の最大値を更新する()
この方法で使用した色の数が最小となります。 何通りか試してみてそれっぽかったしACもとれてるから正しいと思うけど理屈はわかってない。
この方法だと色ごとの最大値が常に降順になりますので3.では二分探索を使いました。同じ値複数がある場合、右端を返すように小細工してます。
F
そのうちやる。
所感
問題Dは方針決めるより問題文理解するほうに時間がかかったし、出力すべきものは間違うしとさんざんでしたね…。日本語頑張ろっか…。
*1:出力すべきなのはAiではなくi