うにゅーん、って感じだ

だいたいのコンテストサイトで橙か赤です、よく C#を書きます。

初心者が作問して思ったこととか

これは
ひとり Advent Calendar 2016 - Adventar
の6日目の記事であり、かつ
Competitive Programming Advent Calendar 2016 - Adventar
の6日目の記事でもあります。



簡単な自己紹介とか

競プロアドベントカレンダーに載せさせていただくので多分5億人くらいが見てくれるだろうと予想して、少し自己紹介を書きます!

いま大学3年で、競プロを始めたのが大学入ってすぐくらいだったので、なんだかんだ2年半くらいやったことになります。
コード祭り本戦には3回とも出ていて、2015だけパーカーをもらえました。

SRM

https://www.topcoder.com/members/rian/details/?track=DATA_SCIENCE&subTrack=SRM
https://competitiveprogramming.info/topcoder/srm/history/rian

最近低迷していて、今はギリギリ黄色です。
Div1Easyが解けないことに定評があってつらい。

一番成績の良かった回は0完7撃墜350点です。
https://competitiveprogramming.info/topcoder/srm/round/16776/div/1

Codeforces

riantkb - Codeforces

最近始めました。ギリギリdiv1。
一応調子が悪くなければ2完できるみたいな感じっぽいしdiv2に落ちたくない。

AtCoder

https://atcoder.jp/user/riantkb
http://kenkoooo.com/atcoder/?kind=user&name=riantkb

黄色です。writer権はちょっと得られそうにないです。
前はけっこうちゃんと埋めてたんですけど最近はとてもサボっていてダメ。

作問履歴

yukicoderの方で何問か作問をしました。
りあん🐺☔️⛄️さんの問題一覧 - yukicoder

一番最初に作問をしたのが去年のあどべこんの12日目で、
www.adventar.org

こちらの問題になります。
No.319 happy b1rthday 2 me - yukicoder


そして先月、5問中4問が自作の問題なコンテストを開催させていただきました。
rian.hatenablog.jp


なので、作問を始めてからちょうど1年間で7問yukicoderで作問させていただいたことになります。


本題

記事のタイトルが「初心者が作問して思ったこととか」ですが、とりあえず一番強く感じるのはやっぱり、

作問って難しい!!!

です。その中で、具体的にどういうところが難しいとか、どういうところに苦労してるみたいな話を書きます。

誰か作問のプロ、作問テクみたいな記事書いてほしい

難易度・分野の制限

まぁ当然ですが、自分が解けないレベルの問題は作れません。
さらに、自分が苦手とする分野の問題は本当に作れません。
自分はグラフの問題が本当に苦手で、逆にDPやsegtreeを用いると解けるような問題が比較的好きなので、実際にyukicoderで作問した★3以上の問題(5問)はDPが2問、BITを使う問題が2問、数学が1問となっていてひどい偏りようです。

作問のプロ各位は一体どれだけの地力と隙のなさをお持ちなんだ、って感じ。

また、証明はしてないけどきっとこれで通るやろ! みたいな解法は自分がコンテスト参加者なときは好きに投げられますが、自分が作問側の場合はちゃんと証明しないとひどいことになりますし、なんかコスパが良くない気がします。特に自分は嘘考察をすることに自信があるのでつらい。

良問が作れない

つらい。クソ問ばかり量産されます。

自分の作った問題の中でそこそこ良問なのでは? って思っているのが、
初作問のNo.319 happy b1rthday 2 me - yukicoderと、
最近のNo.448 ゆきこーだーの雨と雪 (3) - yukicoderなのですが、
どちらも解法からではなく先に問題概要を思いついた、という共通点があります。

上のツイートでも言っていますが、なんか個人的には「このアルゴリズムを使う問題を作りたい!」とか言って作ろうとするとクソ問しか産出されず死亡、みたいなことが多いです。きびしいせかい。

というか初めての問題であるところのNo.319 happy b1rthday 2 me - yukicoderがもはやピークだったのでは? という危惧があります…

テストケース作成が大変

作問をすると自動的にテストケースも作らなければなりませんが、強いテストケースを作るのがとても難しいです。
嘘解法を落としたり、TLE解をきちんとTLEにしたりするのがとても大変。というかできない。

特に後者は C++とかいうクソ速クソ言語のせいで とてもきびしい。C#解よりオーダー悪いのに爆速、みたいなこともあってもうなんやねんという感じ。

そもそも想定解法が正しいのかとても不安

毎回、出題してからACされるまでビクビクした時間を過ごしています。
テスターってすごいだいじ。

C++はクソ

C++はクソです。

想定解法で解いてほしい

平衡二分木で殴った人は早く解説記事を書いて。
No.449 ゆきこーだーの雨と雪 (4) - yukicoder


誰か作問のプロ、作問テクみたいな記事書いてほしい

書いてほしい。



ところで

ただいま、Advent Calendar Contest Advent Calendar 2016 が開催中です!

www.adventar.org

私は今年も12日目に出題させていただけることになりました。多分★3で、去年のより簡単めだと思います。
こちらもどうぞよろしくお願いします!!!





明日の記事は、
Yazaten さんの「色々なアルゴリズムで「殴る」」と、
とこはるさんの「最近改訂した定式化ドキュメントまわりの話」
だそうです! 楽しみですね!