アジの開きを閉じる。

競プロ(AtCoder)中心のブログ

【単独Writerコン】Ajinoko Special Contest レポート②

【単独Writerコン】Ajinoko Special Contest レポート①の続きです。

 

目次

 

 

おアジはいかがでしたか?

私はめちゃ楽しくて満足したのですが,他の方はどうだったのでしょうか?

コンテスト開催という私の夢に多くの方を巻き込んでしまったわけで,どう受け止められていたのかが気になりました。

楽しんでくれた方もいるだろうし,一方で,「○○のところがおかしかったぞ!コンテスト開くならちゃんとやれ!」みたいな否定的な声があっても,まあおかしくないなと思っていました。

 

任意回答の事後アンケート結果を見てみると…(一部抜粋。色は回答者のAtCoderレート帯)

  • 楽しめましたありがとうございました ()
  • 解けそうで解けない痒いところの問題に出会えてよかったです。楽しかったです ()
  • 楽しかったです!!毎秒開催して。()
  • 変なミスで時間を溶かしてしまいましたが、今後につなげることができそうで感謝しています!お疲れ様でした!\(^o^)/ ()
  • totemotanoshikattadesu! ()
  • また次回もあったらぜひ参加したいです!()

 

良かった…!嬉しい!

アンケート結果を見る限りどの参加者も楽しんで頂けたようで,次回を期待する声もありました。第2回をやるなら時間があるとき,早くても定年退職後なので,それまでお楽しみに!!

一方で,否定的なコメントは全くありませんでした。

 

とある設問の回答(3択)。回答者の半数以上の布団を吹っ飛ばすことに成功。

 

また,コンテスト全体の質についてもコメントを頂きました。

  • 体感ですが、DiffがABCぐらいでちょうどいい難易度だったと思います。()
  • 完成度高いコンテストでした。Fが時間内に解けなくて悔しい。()
  • どの問題も解法がすぐ浮かんだということがあり、個人的にかなり爽快感があって楽しかったです。(中略) 教育的な典型要素が強いコンテストだと思いました。()
  • 問題面白かったです!E・Fはとても教育的だと思います!()

 

難易度傾斜がABCに似るようにしていたので,狙い通りにいったようです。

同じアンケートで,問題ごとに体感diffを評定してもらったので,結果を見てみましょう。

diffとは?(クリックして展開) 「○色coderの50%が解ける問題」の○色。「○+1色ならほぼ全員解ける」と考えても差し支えなかろう。

各問題の体感diff。Dは茶色ってマジ!?

 

体感diffであることに注意してください。実際のAC率を基にしていません。というのもこれは匿名式アンケートのため,実際に解けたかどうかを尋ねると順位表からある程度,特定が可能になってしまうからです。

 

それを踏まえて眺めると,概ねABCの難易度傾斜(灰灰茶緑水青)に似ています。やったね!!

 

「教育的」「典型的」というのは意図していなかったため,解いて損はない,価値ある問題を出題していたのだな,と感じました。

 

最後に

初めての単独Writerコン開催をやってみて,準備から運営まですべてが楽しく,良い経験ができました。

 

最初は,「クソ問しか生まれなかったらどうしよう」「Testerが集まるのか」「参加者が集まるのか」「コンテストとして破綻しないか」など不安要素盛り盛りでした。

でも優しい競プロerさんたちとMojaCoderという超便利コンテンツのおかげで,最高のコンテストが開催できました。嬉しい限りです。

 

主催者側の楽しさを覚えてしまったので,これからは共催のWriterやTesterとしても関わっていきたいです。既に企画を考えている人は一報ください。(あと,もしMojaCoderで順位表が消滅してしまった場合は私にお任せください。復元します!)

 

それではまた!!

 

 

(おまけ)出題の意図

ASCでの出題にあたる全体の構成や問題ごとの意図を残しておきます。まんまと罠にはまってませんか…?

コンテスト全体(クリックして展開)
  • ABCの難易度傾斜に似せる
    • 灰灰茶緑水青。ただし自分の今のレート帯が水なので青は作問できないため,最後は水とする。
  • 典型アルゴリズムを貼るだけ,データ構造で殴るだけの退屈な問題は出さない。
  • 高度なデータ構造(セグ木など)を用いる問題は出さない。
    • 知っている/知らないがACに強く依存するため。
  • 解説の冒頭にはキーワードを記す。
    • 問題の特徴を捉えやすく,後の解説が一段と読みやすくなる。
    • キーワードをヒントとしてもう一度考えたりできる。
    • 意外なキーワードを見せられたらびっくりする。印象に残る。
A問題(クリックして展開)
  • 誰でも解けるであろう初歩的な問題。
    • せっかく参加したのに0完は悲しいため。
    • データ構造やライブラリは使わない問題。
  • 問題文はシンプルに。
  • 役に立つ問題。
    • 切り上げ除算は時々必要な場面が出てくる。 これが (N+M-1)/M と1行で書けることを知っているとお得。
B問題(クリックして展開)
  • 初歩的な問題その2。
    • A問題よりはちょっと考察が必要。
  • AtCoderであまり見かけない問題を入れてみた。
    • 答えに必要の無い情報も紛れている。どれが必要なのか,情報を精査することは大事だと思う。これはDPテーブルの持ち方にも繋がる。
C問題(クリックして展開)
  • 少し難易度が上がり,考察が重要な問題。
    • 重要なのは考察部分で,典型アルゴリズムや典型データ構造は用いない。
  • 今回は,整数の性質。
    • 「正整数Nの約数の個数は(Nが大きいほど)Nに比べて非常に小さい」という感覚を持つことがACのカギとなる。
D問題(クリックして展開)
  • 基本的なアルゴリズム・データ構造の知識に加え,その利用法が求められる問題。
    • 例えば,DFS,BFS,尺取法,DP,累積和,二分探索,UnionFindなど。
    • ただし,ド典型ではない。
  • 今回は,数列。
    • AtCoderで数列はC, D問題で出題される印象。
    • 数列の問題は手がかりが少なく,意外と難しかったりするので自然と緑diffになる(はず)。
    • ソートして単調性を付与→二分探索。自分も忘れがちなので出題してみた。
E問題(クリックして展開)
  • グラフ問題。
  • 今回は,状態を頂点とするグラフで考える問題。
    • 与えられるグラフ上では考えないところが個人的に面白いと思うので出題してみた。
  • 入力形式を「普通」でないようにした。
    • おそらく普通は「頂点iに置物A_iが置かれている」という入力形式だろうが,あえて「置物jが頂点A_jに置かれている」とした。人間のちょっといじわるな部分がにじみ出てしまった。
F問題(クリックして展開)
  • グラフ問題。
  • 今回は,最小全域木
    • 最小全域木の問題は最短経路問題に比べてあまり見かけない印象なので出題してみた。
    • グラフ"を"与えるのではなく,グラフ"で"考える問題にした。面白いと思うので。
  • 前計算が必要になるような問題にした。
    • Testerさんに脳死ACされてしまったため。
    • 最小全域木アルゴリズムを理解していないと前計算に気付けなかったり,前計算で毎回,mod付き繰り返し二乗法を用いるとTLEになったりするなど,結果的に問題の質が向上した。