茶処・まっちゃら亭の一休みばしょ

UnionFind教信者が、何か言ってるブログです。

今年の冬も、緑茶と一緒に。~4回目の単独コンテスト~

Prologue

こんにちは。久しぶりですね。
今年も私、まっちゃラテは4回目の単独コンテストを開きました。

その名も
Green Tea's Xmas Contest ~Grand Snowing~ : GTXCGS

※サブタイトルに特に意味はありません。

今回は、このGTXCGSのうらばなしをしていこうと思います。
こんなテンションな私ですが、背景ではかなり厳しいことが山積みであったりして...

なぜコンテストを開こうと思った?

ええ...これには別に深い理由はないのですが、もうほぼ、毎年恒例行事となったというか...本当に

「作問スタックもたまってきたし、いっちょコンテスト、開くか☆」

という浅い一心でした。そう、この決心は確か...9月?あたりですかね、そこらへんに決定したのです。

突然ですが、皆さんはレポートというものをご存じでしょうか。なんかの科目の授業に対して、どういう原理で、どういうことを学び、どのように活かすのか、をまとめ、人に発表するといったようなもので。文理問わず、一回くらいは書いたことがあるでしょう。
私の大学では、9月は後期が始まったばかりでした。これは何を示しているのかというと、このころは、まだレポート課題がマジで少なかった時代でした.....

なので、コンテストを開く余裕を持っていました。
あの地獄を、突きつけられる日が来るまでは。

9月: コンテスト問題調整

9月。課題がとりあえず余裕な日々が続きました。
問題をスタックから取り出そうと思い、散策しました。というか、探索してました。...え~.....

案の上、コンテストに向いていない問題たちでした。取り出したのは、たった1問。
そう、つまりほぼすべての問題を1から考え始めたのです。

はっきり言いましょう。マジで、きつかったです。この理由は、後程わかります。

10月: Tester公開に向けて、最終調整

10月。ここから課題がたまってきました。いうてもまだ余裕くらいですが。
さぁ、ここから地獄のテストケース作成、解説作成、問題文調整です。これが地獄の作業かどうかは、作問者の天才の度合いによって変わるので一定に地獄とは言えないですが、マジで地獄でした。

というのも、この時期はもう勉強に力を入れないと授業に追いつけない(そんくらいの難易度)だったので、せっかくのABCも参加できず、まともに精進の時間も取れないといった日々が続きました。

つまり

私の知識と能力は、茶色にとどまったまま、でした。

ええ。これからわかる通り、作問適正難易度が茶色であったにも関わらず、過去の自分が開いたコンテストの問題を見直してみると、

緑、
水色、
青色...

どれも足を踏み入れたことのない領域です。

嘘です。一度はあります。

でも、でも!!!当時の私にはどれも解くのにまだ脳が足りない時期...
この頃から、精進の時間が足りないと自覚しはじめ、課題は先におわらせ、精進の時間を取ろうと思ったのです。

しかし、大学生はそうはいきません。

:

:

バイトという奴が、一筋の光に通ずる道に向かう私の行く手を阻んでいたのです。

:

:

私が受けるバイトは、週3。1日5時間弱。ええ、こんなに時間が無駄...いや、お金をもらっている身なので決して無駄にはならないのですが、精進の時間をとるためには、本当に邪魔だと思っていました。正直。

こうしてバイトに嫌悪感を感じ、また問題調整の時間が夜中しか取れず、午前はおふとんタイム(こういう時間も無駄に感じるかもしれないが、一種の癒しなので💕)であり、時間の大切さを、知り始めました。

というより、時間が本当に早く過ぎていくんだ...と思い始めたのはこの辺ですかね...><

:

:

:

あ、で、問題調整の話に戻るんですが、課題とバイトのおかげで精進の時間が取れず、まともに解説がかけず、自分を責めるみたいなこともしていました。

なので皆さん、作問するときは絶対適正難易度で作ったほうが、無難です。
この経験から、精進の大切さを改めて知りました。

:

:

?

え、なんかテンション低くないかって?記事の文からして?
いや、気のせいです。風邪の病み上がりなので、読者の皆さんがバイアスをかけられているだけで、私は今すごく元気です!!!!!!!!!!Fooooooooooooooooooooooooooooooooo↑↑↑↑

(無理やり)

11月: Testerが天才しかいなかった件

11月。ええ、言わずもがな、レポートがどしどし入ってきました。そして苦手科目の課題もたくさん入ってきました。面白くなってきたねぇ!!!!!!

この月は、やっとTesterさんを集め、テストをしてもらいました。

:

:

:

:

ええ...

:

:

:

:

問題の不備が、多い?

:

:

終わりです。
そう、問題の不備が多すぎて、これはコンテスト開こうと思った自分は大バカ野郎なんだなとおもいました。

確かに、確かにね!!
ディスコのある競プログループで、こう言われたんですよ。

:

:

「1B(1年生後期)でコンテスト開くなんて、結構大変じゃない?」

:

:

あの頃の自分は、課題が本当に少なかったので余裕をこいていたんですが、
この時期になると、あの言葉が、しみます。体中に。緑茶を体中にかけて染みわたるような、あの感覚。(?)

いろいろありました。本当に。
なので、ちゃんと精進して能力をつけてからコンテストを開こうと思いました。

:

:

:

:

それもありますが!!!
まずTesterさんを集めてテストしたんですが、Testerさんが天才すぎて追いつけませんした。理解も能力も。

:

:

やばい、書くの面倒になってきた。書きますけど!!!!!!

:

:

そう、特にEx問題。これ、水~青を狙って考えたものなんですが、えー解説も実装もきつかったです正直。でもTesterさんが天才すぎて、トポロジカルソートしてDPという。え、何言ってんのこの人たちと思いましたもの!!!

たくさん質問しました。でも、知っているでしょう。

:

:

:

私が負けず嫌いなことを。

:

:

:

なので、あんまり人に頼りすぎない程度で自分で解決したかったので、あえて質問しないといった最悪の選択をしましたが、ええ...

トポ+DPは、そりゃ思いつかないよねぇ...
私は最初、ダイクストラ法の応用を解答例にしていましたが、嘘解法なことがわかってですねぇ...本当につよつよerに見てもらうって大事ですね。。。

そんなこんなで、いろいろメンタルを壊されていました。
大学とバイト、無くなればいいのに!!!って思い始めました。時間が、ほしい。。。

12月前半: メンタル壊れかけのラテ

12月前半。レポートは当たり前のように残り、勉強は当たり前のようにむずい。
これはやばいです。勉強がついにきつくなってきました。

せっかく誕生日(12/5)だってのに、レポートは無慈悲に出されていました。誕生日の夜に気合で終わらせました。

コンテスト調整もやっとラストスパート。...だと思ってた私がバカでした。

:

:

解説コードのバグ、
テストケースの不備、
解説の記述不備、
問題文の修正......

:

:

あんなに自分だけで調べて!!!!Testerさんは本当に鋭いところを突いてきました。同時に自分の今の能力に喧嘩売ろうとして(?)、メンタルは「壊れかけのラテ」になっていきました--

多分、私のX(Twitter)のFFさんならご存じだと思いますが、壊れてましたね...
ABC出れなくて嫉妬して。バイトの際の態度悪い客の悪口を言って。望みもしていないのにお気持ち表明して。唯一のストレス発散だったと思っています。

そんなこんなで、私のメンタルは崩壊寸前でしたが、気合で泥を泥で洗い返しました。ストレスに、打ち勝ったのです。

:

:

:

そして、12/28。無事、コンテストを開くことができました。
あそこであきらめなくて、本当に良かった....✨✨

問題分野別のうらばなし

ここからは問題別のうらばなしについてご紹介していきます。 ※ネタバレ注意!

A: Swap to Right

どこからともなく、swapという言葉が出てきて、文字列操作の問題を作ろうとしたら、こうなりました。
これは特にうらばなしはないです。

diff予想は、10~60くらい?

B: Footprint 2

前回のGTXC↓ mojacoder.app

この回では、Footprint(足跡、という意味)という、なんとも綺麗なタイトルの問題を出題しました。
このインスピレーションを受け、今回は2作目として作りました。そしたら、LRUDで移動の看板が立っており、雪玉を大きくするといった問題ができました。

正直、良問を作るのがきつかったです。
ただ、問題が綺麗だったので、これで行こうとなりました。

そして、今回も重実装を狙ってみました。やっぱBはこれくらいじゃないとねGTXCは特に!!!!!!^^

diff予想は、100~250くらい

C: Graph Palindome

ええ、言わずもがな、一番の良問だと思いますこの回においては。
これはスタックから取り出した問題です。でも当時はまともに解けなかったのでお蔵入りにしていましたが、なんか解けるようになっていたので採用することにしました。

今回のコンテスト、伝家の宝刀であるUnionFindちゃんを用いる問題がなかったので、せめてCにグラフ要素を入れようと思いました。
そしたら偶然にも、UFを使って実装できたので、got a kotonakiを得ました。

diff予想は、300~500くらい

D: Prevented to Carry Snowman

実は、去年の冬、雪が降ったのですが、その時に思いついて作ったものです。その改題です。
前回の問題は、幅優先探索の評価式の変更を問う感じでしたが、Overflowやら不等式だけど小数誤差があるやらで、なんとなく恐怖を感じたので、さらに簡易化したら、いつのまにか根付き木になっていました。
まぁ、現代に応用できるかと言われればできると思ったので、これを採用しました。

diff予想は、450~600くらい

E: Jingle,Jingle,Presents!!

これも、スタックから取り出したものです。yukicoder様のサイトで出題しようとしたやつですが、いつの間にか忘れ去られた神殿になっていました。
なんと問題はそのままを採用しました。ただ、ストーリーがめちゃくちゃになったのだけは、後悔しております。。。

F: Walnuts in Xmas Lease

3回目に開いた夏のコンテスト、Matcha's Summer Amazing Part-time Contest -MSABC- 🏝🍉 | MojaCoder に出題しようとしましたが、いろいろ不備あってお蔵入りになったやつです。
でも、優先度付きキューを用いれば簡単になることを知ったので、どうにかしてもっと難しくしたいと思った結果、こうなりました。

Testerの方たちは、二分探索などでさらに高速になるといっていましたが、メンタルのおかげで脳が言うこと聞いてくれなかったのでこんな制約にしました。

diff予想は、700~1000くらい

G?: From matcharate12

驚いたでしょう^^
題名に私の名前を入れて、手紙の題名ぽくしてみました。

まぁ、そういう意味もあるんですが、本当は、「タスクをほどよく切って、楽に生きよう」というメッセージを込めた問題にしたのもあります。

:

:

:

:

え、なんか問題文を言ってる内容が違う?
そうです...その問題は、bitDPを用いる問題になってしまって、私の能力不足で絶対解説書けんと思い、なんか互換の操作の問題になっていました。

実はこの問題もスタックから取り出したものです。本当は辞書順最小からK番目に相当するように、互換の操作をしろみたいな問題を作っていたんですが、この「辞書順からK番目に相当するような順列」を計算するのが調べればすぐに出てくることを知って、冷めたのです。

なのでこうなりました。

diff予想は、800~1100くらい

Ex: Prevented to Carry Snowman REVENGE

D問題をさらにむずくしたやつですね。Ex問題、本当は全く別問題を考えようと思っていたんですが、メンタルといい心の健康状態といい自分の能力の度合いといい、無理でした(直球)。
ストーリーもなぜか最後は意味深な感じになっていますが、別に私は「本当は雪が大嫌いなんですよwww早く夏になればいいのにwww肉まん食いてぇ」という意思も別になくて、雪が大好きなのは本当です。じゃあ真実の顔の口に私の腕を当てはめてみましょう。

:

:

腕が、取れなくなれましたね。

:

:

じゃなくて!!!

とりあえずここの問題は!!!考えるのが!!!!むずかった!!!!
だからこそ精進は大切であることを知りました。色々な観点から問題を見ることは、大切です。皆さんも気を付けて人生を過ごしましょう。

diff予想は、1100~1500くらい

終わりに

皆さん、本当に今年もありがとうございました。今年は、3回もコンテストを開いたようです。
来年は、コンテストを開くかどうかは、決めていません。なぜなら、精進しないと強くなれないし、というより緑に戻らねばならないという使命感が強いためです。

なので、コンテストを一回も開かないかもしれないし、逆に599回くらい開くかもしれません。
1回も開かないなら、私はやりたいことに夢中になっていると、解釈してください。時間が、ほしいのです!!!!

Epilogue

来年は、さらに充実するような年にしたいな。まずは、目指せ水色!!!
そして、コミュ力も同時に身に着けて...

To be Continue...🏔✨🌅

ぴょこっ

皆さんは風邪にお気を付けください。はっきり言って、この記事を書く気力がありません。
なので文がめっちゃアレになってましたね、、、今度からは万全の状態でテンションMAXで書きます。

では、またどこかで。