Kyo_s_s Homepage
水以下コンテスト 開催記
競技プログラミング

2024年3月30日に、芝浦工業大学で水以下コンテストを開催しました。

connpass: https://connpass.com/event/308518/

MOFE: https://mofecoder.com/contests/cyan_or_less_01

問題管理リポジトリ: https://github.com/Kyo-s-s/cyan-or-less-procon-2024-spring

開催にあたって
運営メンバー

Kyo_s_s, yasunori さん, Ackvy さん, えくと さん, forループ さん, Nichi10p さん, Blueberry1001 さん, ragna さん の8名で運営をしました。

教室予約/Wifi

サークルの名前を借りて教室予約をしました。個人名義では教室の貸し出しができない?らしいです。

豊洲の教室を借りるのはハードルが高そう、と思っていたのですが、案外すんなりと教室予約ができました。

Wifiについても、ゲスト用無線LANがありこちらを借りれました。 遅い等のコメントは無かったため、安定していたっぽいです。

問題の管理

GitHub 上で行いました。 また、A問題を除くすべての問題で部分点があるため、想定コードで意図した部分点が取れることを確認するために、 Rime を使用しました。

GitHub Action で Rime のテストを自動化し、テストを通らないとMergeできないように設定したりしました。

解説スライド/名札の作成

解説スライド/名札ともに SATySFi を使用し作成しました。 書き心地がとても良かったです。

作問

全11問あるうち4問でWriterをしました。

A: Cyan or Less

問題リンク: https://mofecoder.com/contests/cyan_or_less_01/tasks/cyan_or_less_01_a

ギャグです。一旦は没となったのですが、他に良いA問題枠が出てこなかったり、ギャグとして出してもいいんじゃないかということで出題されました。

サンプル1の #95859c は、「鳩羽色」という色でした。(気づいている人いなさそう…)

B: f(f(f(f(f(x)))))

問題リンク: https://mofecoder.com/contests/cyan_or_less_01/tasks/cyan_or_less_01_b

構文解析が出したかったのですが、構文解析やるだけは面白くないということでダブリングも付けました。

比較的シンプルな数式しかできないようにしたり、そもそも数式の長さが100文字以下にしたりしたのですが、構文解析ということで飛した人が多かった気がします。

構文解析をちゃんとやらずとも、再帰的な構造(?)がないため式の分割を繰り返していけば解けます。

D: X-word database

問題リンク: https://mofecoder.com/contests/cyan_or_less_01/tasks/cyan_or_less_01_d

全俳句データベース が元ネタです。

よい文字列の条件を「ちょうど XX 文字」にしておいた方が良かったじゃん、ということに出題後に気づきました。 こうすると若干簡単な見た目になった気がします(することは同じですが)。

桁DPは以前ABCに出たときにdiffが低かった記憶があり出題したのですが、難しかったと(G問題の次に)多くききました。

部分点2の制約は桁DPパートがないため、まずは部分点2を通してから桁DPパートを解く…という流れで解いてもらうことを想定し部分点を設定しました。

F: Subset Mex

問題リンク: https://mofecoder.com/contests/cyan_or_less_01/tasks/cyan_or_less_01_f

主客転倒を出したくない?という話があり作られました。

当日

教室を2つ予約していて1つは運営の待機に使おうと思っていたのですが、思ったより参加者が多く、2つの教室に分かれてもらいました。 1つしか予約していなかったら危なかったです。

豊洲キャンパスは大学構内から出るときにも学生証をかざす必要があるため、会場と入口を何度も行き来する必要があり大変でした。

懇親会では、僕自身が初めてのオンサイトで「誰かに話しかけに行きづらい…」という経験をしたことがあるため、話すきっかけとなってくれるようにと思いボドゲをいくつか持っていきました。

感想

全体的に難しかったという声を多くいただきました。すみませんでした。

個人的に、今回のセットは「難しめの水diffを多くし、部分点で誘導して解いてもらいたい」という気持ちがありました。 実際 D や F や J などは特にそのような部分点制約になっていました。この誘導があれば水diffかなぁ、と思っていたのですが、想定より解かれなかった問題が多かったです。

問題数が多かったのは強い方々が全完して暇になってしまうのを避けたかったためです (実際、予約していた教室2つはともにコンテストに使用したため、もし全完してしまっても待機するスペースがない状態でした)。 この問題数で全完は黄色でも厳しいだろう、ということは運営でも話していたのですが、全体に公開はしていませんでした。公開しておくべき事柄だったなぁと反省しています。

おわりに

運営、参加者の皆様、MOFEを貸してもらったkichiさん、本当にありがとうございました!

© 2025 Kyo_s_s