【コンテスト開催記】yukicoder contest 440
yukicoder で3度目となる単独コンテストを開催させていただきました。
およそ 1 年半ぶりの単独コンテストでした。
作問は定期的にしていたのですが、昨年は就活で忙しくてあまり時間が割けなかったので結果的に久しぶりのコンテスト開催となりました。
テスターをしてくださった Y.Y.さん、first_vil さん、nonon君、suo君、とりゐ君、ありがとうございます!!
各問題へのコメント
各問題の出来た経緯やお気持ちを書きます。解法への言及もあります。
今回も 「ARC っぽい問題」を目指して作りました。
A : Take and Flip
問題設定から考えました。ギャグですが、気に入っています。
もともとは first さんとの共同コンテストで出す予定でしたが、有耶無耶になってしまったのでここで出すことにしました。
B : Comment Out
問題設定から考えました。C++ でコード書いているときに行を範囲選択しながら「Ctrl + /」を押して「//」が増えるのを見て思いつきました。
これも結果はギャグですね。自分は解法が思いつくまでそこそこ時間がかかりました。
C : Flip Trimino
解法から考えました。反転させて偶奇で不変量みたいな問題はかなり典型化してしまったので、mod 3 の場合を考えて作りました。
要するに全てを白にできる必要十分条件を考えさせる問題を作りたかったのですが、判定問題だと貪欲にできちゃったりしそうだったので、数え上げにしています。
自信作なので前の方に置きたくて C にしましたが、数え上げにしたのもあってか B との崖が出来てしまったのが反省点です。
D : Diagonals
問題設定から考えました。始めは N*M の長方形のグリッドのみでしたが、流石にエスパーされそうな気がしたので任意のグリッドグラフにしました。
adhoc 度は低い?今回のセットの中だとそんなに気に入っていないです(?)
E : AND Constraints
今よりシンプルな問題設定を考える → 嘘解法を思いつく → その嘘解法が正しい解法になるように問題設定をいじる という手順で作りました。
今回のセットの中で一番最後に作りました。数え上げっぽい数え上げを作りたくて作ることができたので嬉しいです。難しいけど面白いと思っています。
F : RGB Plates
解法 (最小値のみ考えれば排反という制約を考えなくて良いという考察) から考えました。今回のセットで一番最初に作り、この問題を出すためにコンテストを作りました。
↑の考察に鳩の巣原理をかけ合わせて解くというのが非常に面白いと思っていましたが、鳩の巣原理を使わずとも bitset で解けますね・・・。想定解でない方法で解いている人が多そうでした。
簡単な解法を思いつけなかったので難易度の逆転も起こってしまいました。反省点ですが、どうしようもない気もします。
G : Leaf Eater
問題設定から考えました。
シンプルな設定で気に入っています。根から葉の距離が関係なく、枝分かれする場所が重要という性質が見たこと無かったので面白かったです。
★3.5 想定でしたが、全体テスターの Y.Y. さんの助言で 4.0 になりました。実際解いた人は少なかったので上げて良かったと思っています。
最後に
卒業前にゆきこで単独コンテストを開けて良かったです。来年からは社会人になるのでどのくらい作問ができるか分かりませんが、余裕があればまた単独コンテストを開きたいです。今回没になった単体の問題もゆきこのオムニバスとかで出すかもしれません。TUPC が(もしあれば)そちらでも writer をやりたいと思っているのでよろしくお願いします。