ARC103

自分の状態がわからん。今はとにかくつらい。

C - /\/\/\/

タブに表示されるタイトルは¥だったけど、ページの中身を見ると意味がわかる。まあ解けそうな見た目。偶数番目と奇数番目で2系統に分かれてて、それぞれで一番多いやつに合わせればいい。ただ、「ちょうど2種類」という条件がきつい。サンプルの最後にもあったが、それを回避するのはけっこう複雑な処理になる。ふとvが10^5通りとかしかないんじゃないかと思って制約を見るとやっぱりそうだった。とはいえ、多いやつが何かとその個数を2番目まで求める必要があるのでかなり厄介ではある。頑張ってそのまま書いた。ここの一発ACは嬉しかった。

D - Robot Arms

問題文を読むのに8分くらいかかった。1分くらい考えて解けるわけがないと思いEへ(Eが難しければまたDを考える気になる)。

E - Tr/ee

構築いいよね。Dと違って思わず解きたくなる。まず根付き木で考えてみる。取り除く辺は指定されていないので思ったよりわかりやすい。木を解析するみたいな気分だったが、問題設定は自分で好きに構築できるというもの。葉から出てる辺を切れば1とn-1に分かれる。そのまま伸ばせば2や3は作れる。逆に2を作りたくないなら枝分かれさせればその部分では作れなくなる。色々試していると、どうも伸ばすかぶら下げるかでコントロールできそう。また、文字列の情報は真ん中で対称になっている必要がある。これは楽勝と思い詳細を詰めていくが、真ん中の部分がかなり複雑だ。nが奇数と偶数で場合分けして、なんとかできそうだと思うところまで行けた。わかるところから実装するが、真ん中の接続部分がなんかわかんなくなって1時間が過ぎた。対称にもう半分のグラフを作るのもなんかできてないことにだいぶあとになってから気づいた。そんな簡単なことができないとか思わんわ。うそだろって感じで残り時間がゼロになった。