CPSCO2019 参加記(後半)
これの続きです。
Session2
運営なのに起床に失敗してコンテストに10分遅れて到着。僕以外のチームメイトが茶茶無だったので実装詰まったりで困ってたら申し訳ないと思いながら状況を聞いたらABをACしてCも実装に入っていますって返ってきて超頼もしかった。
Dをくろねぇさんと2人で考えることにして、こういうゲームはとりあえず小さい数で実験するとよくて、みたいな話をしながら紙に書き出していくと性質が見えて証明もできたので書いてもらう。4完最速だったっぽい。
そこからがつらくて、500が一向にわからないのでとりあえずチームメイトに普通の最小全域木問題の説明をしたりする。
よくみると600はいつもの2乗の木DPなので書く。入力し忘れとかいう意味のわからないバグに気づかず頭を悩ませるもそこだけ直すと割とすぐに通る。これも解き終わった後軽い解説をしたりしてた。
500全然わからないなぁと思っていたら終了15分前くらいにけんちょんチームが700を通したので考えることにするとすぐに燃やす埋めるなことに気づく。ただ実装がちょっと大変で詰めきれなくて終了。500にこだわらず700から考えてれば間に合ってそうなので完全に戦犯。序盤を速攻で通してもらって後半を処理できないのはねぇ...。
Session3
テスターだったのでちょっとだけコメントをします。
A. ASOKO
もともと問題名「OSAKA」で少し別の問題だったんですが問題名をAで始めたくなったので変更されました。新しいほうを考えたのは実は僕です。
B. Balloon
今回のキャンプでは運営人数の都合で風船配布はFAのみに行われました。
C. Camp Reception
この問題とBは問題名にこだわっていなかったんですがたまたまBとCで始まったので全問題の頭文字を揃えることになりました。
D. Decode RGB Sequence
原案はスタンプの文字数がもう少し多かったんですがRGBの3文字にしてみたら性質が超綺麗だったのでこうなりました。「条件をみたすN文字の文字列は何通りあるでしょう?」でも解くことができます。
D問題は初心者でも手を動かして考えられる問題にしたかったそうで、実際うまくいっていたんじゃないかなぁと思います。
E. Enumarate Xor Sum
ちょっと問題名が怖いですよね。数列にxorでどうこうする問題で素朴な設定を考えるとだいたいちょっとググるとでてきてつらかったです。2人で相談しながら最終的にここに着地しました。DEあたりの難易度調整がたぶん僕のテスターとしての仕事の9割くらいだったと思っています。
F. Flexible Permutation
数え上げ大好きおじさんなのでかなり好きな問題です。2乗で解けることに一切気づけなかったので数え上げ大好きおじさん失格です。箱根駅伝っぽくも解けますがswap DPみたいな感じでやるのがわかりやすいと思います。
G. Grand Election
テスターの僕が48のオタクだったことは有名ですが原案も問題文も全部けんちょんです。グループ名にだけ口出ししました。
ちなみに僕もコーナーケースを片っ端から踏みました。これ難しいですよね。
Session4
個人戦ですがオンサイトでは負けられない感じだったのでちょっと緊張しました。
冷静に計算するとAのオンサイトFAが取れます。そのまま問題文を丁寧に読むことでBのオンサイトFAも取れます。Cは一瞬N/3チームのマッチングに見えて思考が停止したのでFAが取れません。DはDから解いたやむなくくんが5分くらいで通していました。
Eは色々実験すると(正しい方の)貪欲法に気づけたので書くとオンサイトFAでした。オンラインのFAも並行世界の僕(arupmet)が取っていました。
Fは全然わからなくて残り5分で再帰で書くと綺麗に実装できることに気づいたのでtextで解法を提出して諦めました。
まとめ
準備期間も人数も十分とは言えなかったにも関わらず大きな問題なく終えることができて本当に安堵しています。会場その他の運営はほぼはにーまさんが1人でやりきってくださったので頭が上がりません。競プロイベントの参加経験がないにも関わらずすごい細かいところにまで気が回っていてすごかったです。
作問者としての反省はやはり解説の準備が不十分だったところだったかと思います。あとテストケースを当日に作り直すのは超不安になるのでやめましょう。
関西競プロerとの交流もかなりできて楽しかったので次回もあるのならまた関わらせてもらえたらなぁと思います。
参加してくださった皆さん、そして企画してくださったはにーまさん、本当にありがとうございました!!!