見出し画像

OMCのすゝめ

こんにちは!中学 3 年生 (執筆当時) の locker といいます!

この記事は題名の通り、OMC、OnlineMathContest を紹介する内容となっています。

数学が好きな人、OMC 始めたての人たちはぜひ読んでほしいです!

1. そもそもOMCとか、競技数学って何?

まず、競技数学とは何か、ですが、筆者もよく分かっていないので↓

OMC も書いてありますね。 まあ数学オリンピックとか、数学で競うのが競技数学だと思ってくれればいいです。そのまんまですね。
そして、その競技数学の一つとして最近作られたのが、OMC、OnlineMathContest です。
AtCoder をやってる人は、AtCoder の数学バージョンだと考えたら分かりやすいと思います。

2. OMC のしくみ、用語解説 (本質)

※AtCoder をやってる人は、この部分は大体分かると思います※

※OMC のページを見ながらの方が分かりやすいと思います※

こちらに界隈方言をまとめたのでどうぞ(見て不利益はないと思います)※

まず、レートについて説明します。
レートは実力を表す数値で、その人が強いかどうかはレートを見れば大体わかります。
また、レートはパフォーマンスというものによって計算されます。
パフォーマンスは、成績を表す数値です。パフォーマンスもレートも、その数値が高ければ高いほど良いです。

また、レートやパフォーマンスにはというものがあります。
色の分け方は次のようになっています:

黒 … レートでのみ使用される。コンテスト未参加を表す。
灰 … 1 ~ 399
茶 … 400 ~ 799
緑 … 800 ~ 1199
水 … 1200 ~ 1599
青 … 1600 ~ 1999
黄 … 2000 ~ 2399 ←筆者のレートはいまここ
橙 … 2400 ~ 2799
赤 … 2800 ~

例えば、レートが 1025 なら、緑色なので、「緑 solver」と言います。
パフォーマンスが 1512 なら、水色なので、「水 perf」と言います。
(solver は問題を解く人のことで、perf は performance の略です)

レートが下がることを「冷える」、レートが上がることを「温まる」と言ったりもします。筆者も始めたての頃は何言ってるんだこの人たち、って思っていましたが、徐々に慣れていくと思います。

ちなみに僕の個人的な意見を色ごとに書いておくと:
~緑:ある程度の問題を解いていくとそのうち脱出できます。
水:十分強いと思います。ただ界隈だとそんなに珍しくないです。
青:ちょっと頭おかしいです。でもまだ人間です。
黄:頑張るとなれます
橙:??
赤:人類の希望


さて、それを踏まえて、コンテストについて説明します。
それぞれのコンテストで、いかに問題を正確に、速く解くかを競います。
その結果、最終的にどんな成績を残したかによってパフォーマンスが計算され、パフォーマンスが良いか悪いかでレートが上下します。

コンテストは大体週 1 開催だった… のですが!なんと!!
2/6 の大型アップデートより週 2 開催になりました!やったね!!!

ゲフゲフ…

コンテストのページ()を開くと、こんなの ↓ が書いてありますね。

こんなの

ここに書いてあることについて少し説明をしていきます。

まず、公式のコンテストには 3 つの種類があります。


・OMC for beginners

その名の通り、初心者向けのコンテストです。for が 4(four) に似ていることから、4b と言われることが多いです。実は公式もこう略しています。
コンテスト時間は 60 分です。

問題は A,B,C,D の 4 問... だったのですが、OMC045 から、4b も下で解説する無印や 4e と同じように、A,B,C,D,E,F の 6 問になりました。

問題にはテストなどと同様に、配点があります。
OMC の配点は 100 点から 1000 点までの 100 の倍数になっています。
4b の問題の配点は 100 点から 400 点までです。(OMC047(D2) は例外です)

A 問題が一番簡単な 100 点で、F 問題が一番難しい 400点になっています。

(ちなみに beginner でない人たちも順位表にずらずら並んでいたりします...)


・OMC (無印)

普段のコンテストです。正式名称は無印ではなく、Regular らしいです。
問題は A~F の 6 問です。配点は特に決まっていませんが、A 問題が 200 点程度、F 問題が 500~600 点程度になっています。

コンテスト時間は、難しめのものだと 100 分、簡単めのものだと 80 分になっています。


・OMC for experts

上級者向けのコンテストです。4b と同じように、4e と呼びます。
問題はやっぱり A~F です (OMC053 は G までありました) が、全体的に問題の難易度が少し、というかとても上がります。難しいです。

配点は A が 300 点程度 (?) 、F が 700 点から 1000 点程度 (?) です。
コンテスト時間は 135~150 分とかです。


先ほどの画像は無印の物だったことが分かりましたね。
また、「Rated Range」と書いてあるのが見えると思います。
実は、コンテストに参加しても、レートが動く (これを Rated と言います) とは限りません。レートが Rated Range の範囲にない人は、レートは確実に動きません (これを Unrated と言います) 。
Rated Range はコンテストの種類ごとに異なり、

・4b … 0 ~ 1199  (水色以上の人は Unrated )
・無印 … 0 ~ 1999 (黄色以上の人は Unrated )
・4e … 800 ~ 9999 (茶色以下の人は Unrated )
・非公式(有志)コンテスト … レートに関係なく Unrated

となっています。
また、Rated Range の範囲にある人でも、レートを変動させるかどうかを選ぶことができます。Rated Range の範囲ならば、参加登録をするとき

という画面が出てくるので、どちらかを選びましょう。

Unrated での参加の利点として、
 ・どんな悪成績でもレートが冷えないので気楽
というのがありますが、逆に
 ・どんな好成績でもレートは温まらず悲しくなる
とも言えるのでこの選択は慎重にしましょうね…

画像の一番下の「Penalty : 5 分」に関しては後ほど説明します。
それでは、知識も揃ったところで、さっそく始めていきましょう!

3. 始める準備

まず、画面の右上にある「LOGIN」をクリックするとこんな画面になるので、ここからアカウント登録をしましょう。
(スマホ / iPad ならば三本線を押したら「LOGIN」が出てきます)

Confirm Password 欄には上の Password をもう一回入力してください。
Username は後から変更できないのでよく考えましょう。
(筆者は変更できるものだとずっと思っていて悩んだ歴史があります)

さて、ではコンテストが始まるまではぼーっと過ごしてたらいいのかというと、 そうではありません。ということで↓

4. 精進!精進!!

いきなり何やねん気持ち悪って思ったかもしれませんが、精進とは何かについて説明します。

精進とは、競技プログラミング(通称競プロ)や競技数学界隈で、問題を解いて解いて解きまくって解いて(略)することで強くなることです。
そして、精進をするときに役立つのが、

Problems

これです。
開いてみると、問題が並んでいて、その横に円がたくさん見えますね。
この円は、Difficulty (その名の通り難易度)を表しています。

レートやパフォーマンスのように、Difficulty も色で表されます。
「レートが 1274 の人のだいたい半分が正解できる」問題の Difficulty が 1274 で、色だと水 difficulty です(略して水 diff と呼ぶことが多いです)。

言ってしまえば問題のリンクが並べられているだけなのですが、
 ・Difficulty や点数、問題の分野によって絞り込める
という機能が付いているため便利です。とても便利です。非常に便利です。
※現在、解いた問題は覚えるしかありませんが、おそらく、解いた問題が自動で緑色になる機能がいつか(きっと)追加されます.

見方が大体わかったら、さっそく問題を解いていきましょう。
筆者の場合は A 問題から埋めていきましたが、特に決まりはないので、解けそうな問題とかをどんどん解いていきましょう!

5. コンテスト本番の動きなどなどなど

当然ですが、解くのには紙と書くものが必要です。
(ただ恐ろしく強い方々は遊びで暗算で参加したりしますがそれは例外です)
ご飯を食べて、コンテストに参加できる状態にしておきましょう。

さて、始まったらまず、リロードボタンを押し、問題のページに飛びましょう。リロードボタンをいかに正確なタイミングで押すかが勝敗をも分かつことも... あんまりないですができるだけタイミングは計りましょう。

問題のページに飛べたら、基本的には A から解いていきましょう。ただ Unrated のコンテストなどはふざけて逆から解くのも楽しいです。
もし解いている時に詰まったら、別の問題を見てみるのも一つの手です。たまに異常な解き順 (ムーブと言ったりします) になることもあって面白いです。

解けたら、下の解答のフォームに入力して、送信しましょう。
送信すると、「提出一覧」のページに飛ぶはずです。

どの問題を正解したかを示す表が表示されています.具体的には、何番目の提出か、日時、提出した問題、提出したユーザー、正解か否か、送った解答、の 6 列があり、各行が一回一回の提出を表しています.

正解ならば緑に「CA」、不正解ならば赤に「WA」 で表されます。
ちなみに CA は Correct Answer の、WA は Wrong Answer の略です。
非常にどうでもいいですが筆者は WA のことを「わ」と呼んでいます。

また、順位表について話します。
意味は分かると思います。順位の、表です。
順位の付け方は簡単で、まず優先されるのは点数です。
また、同点の中では、最後に CA した問題のタイムが早い人が上位です。

例えば、100 点を 2 分、200 点を 10 分、300 点を 20 分で解いたとしたら、点数は 100+200+300=600 点、タイムは一番最後に解いた C 問題のタイムなので 20 分になります。

ただ、何やら赤くなってるものがありますね。

順位表です(OMC122 のもの).

この赤いものは誤答を一回以上したことを表しています。
また、誤答をするたび、ペナルティが付きます。
ペナルティとは、タイムが { (定数) × 誤答数 } 分だけ加算されるものです。(定数) の部分はコンテストによりますが、公式のコンテストだと基本的に 5 分です。有志コンだと 30 分のこともあったりします。用語解説で見た「Penalty: 5 分」はこれのことを指していました。

なお、上の画像ではペナルティ数が表示されていますが、コンテスト開催中はペナルティ数が公開されず、順位はペナルティを含まないタイムで決定されます。つまり、合計点数が同じ A さんと B さんが

A さん … 15 分で解いたが、5 回誤答している
B さん … 30 分で解き、1 回も誤答していない

といった場合の時は、コンテスト中には A さんの方が上位に表示されますが、最終的には B さんの方が上位になります。ややこしいですね。
なので、できるだけ誤答は避けるようにしましょう。つまり、見直しをしましょう。これはとても大事です。
特に多くの人が解く(と思われる)問題では、出来るだけタイムを短くすることが重要になります。ペナルティの 5 分は、意外にもかなり痛いです。

(ちなみに、順位表から得られない情報をコンテスト中に公開することを言及と言います。言及している人がいたら優しく注意してあげましょう。

例:「C 難しくね?」「D 幾何だし瞬殺~ひゃっほう」「あああ 5 ペナ」

また、一つの問題につきコンテスト中の提出は 10 回までなので、10 回誤答するとその問題はコンテスト中にはもう解けません… 気を付けましょう)

まとめると、

・基本は A から解こう
・正解は CA、不正解は WA
・「点数」と「最後の問題のタイム+ペナルティ」で順位が決まる
・誤答はできるだけ避けよう
・言及はしないでね

って感じです。

6. 作問はいいぞっっ

布教調になりましたが、OMC の一つ機能として、作問があります。
なんと、自作の問題を OMC で出題できます!!嬉しいね!!!

実はレートが水色以上でないと問題を送ることができません… ><
  作問をしたい人は頑張ってレートを上げましょう…!

作問をするには、まずここを開きましょう。

開くと、「New Problem」というボタンが見えますね。
クリックすると、問題編集の画面が開きます。

ここに問題と解説を書いていくのですが、小さな文字で「一重または二重のドル記号で囲うことで数式モードが利用できます」って書いてありますね。
例えば $ABCD$ と書いてプレビューボタンを押すと、なんか数学っぽいフォント(?)で「ABCD」と表示されます。

これは Mathjax というもので、ウェブ上で数式などを表示するツールです。
ルートや分数、シグマや総積記号など、すごくたくさんの記号が用意されています。多すぎるのでここで紹介はしませんが、「LaTeX ○○」とか「Mathjax ○○」と検索すると出てくることが多いです。
他にも問題の書き方にはルールがあるので、Rules の最後の方を読みましょう。(適当に書いて送ると運営さんがブチギレ… はしませんが、運営さんの労力とストレスを増やさないようにできるだけルールは遵守しましょう!)

書けたら、大体点数はどれくらいかな~と考えましょう。(書く前でもいいですが) コンテストに参加していったら「200 点の問題はこれぐらいの難易度なんだな~」とかが分かってくると思います。
また、運営さんに伝えたいことなどがあったらメモ欄に書きましょう。
(例: 解説に画像をつけたいです、力作なのでどうか不採用にしないでください(これはだめ)、などなど)

ここまでできたら、下の「Status」を「完成」に変えて、(←重要)送信しましょう。下書き状態の時は、「作問中」のままにして送信することで、保存することもできます。

あとは、ひたすら審査を待ちましょう。Status には 6 種類あり、

作問中
↓ (送信)
審査中 → 不採用 (筆者はよく twitter に放流します)

審査済み (問題のストックに加わったことを意味します)
↓ (待機)
出題予定 (告知済みのコンテストで出題されることを意味します)

出題済み

作問中は白、審査中は灰、審査済みは緑、出題予定と出題済みは青、不採用は赤色で表されるので、判別がしやすくなっています。

審査にはある程度の時間がかかるので気が気じゃない()ですが、writer (作問者) としても活動したい人は、どんどん作問していきましょう!


さらに!
一つのセットを丸ごと一人で作るの、夢じゃないですか?
一つのセットを仲良し組でみんなで作るの、夢じゃないですか?
そんな夢を叶えるために、セット提出の機能があるのです!

セットを完成させた後提出するのは青色以上の方しかできません… ><
ただし、自分が水色以下であっても、複数人でセットを作る場合は、そのうち一人でも青色以上の人がいれば、その人に提出してもらえば可能です。

セット提出をするには、ここを開きましょう (既視感) 。

開くと「新規セット案作成」のボタンが見えると思います。
入力する事柄は見てもらうとすぐ分かると思うのでここでは割愛しますが、一度ステータスを完成に切り替えると戻せないので気を付けましょう~

また、セットを作成するときは、(せっかくのセットを不採用にしないためにも)分野・点数をイイ感じに設定しましょう!
(具体的には OMC のアナウンスの「セット案作成にあたっての指針」欄を見てもらえば良いかと思います)

ところで、さっき問題の Status には 6 種類あると言いました。
あれは嘘です。(迫真)

基本的にはあれだけなのですが、セット提出関連でさらに 2 つの Status
「審査済み (保留)」と「追加済み」が加わります。

「審査済み (保留)」は「セットに組み込む予定だから運営さん勝手に出さないでね~」という意味です。
「追加済み」は「完成したセットに組み込んであるよ~」という意味です。
(セットが不採用になった場合、「追加済み」になった問題は「審査済み」に戻ります。)

ゴチャゴチャしてきましたが、こればっかりは慣れるより他の方法はないと思います…。
セットを組むのは(単独も共同も)楽しいので是非バンバン作りましょう!


最後に、具体的な作問についての、 simasima さんの記事をここに載せておきます。作問の仕方がよく分かるので、読んでみてくださいね~

7. 最後に

この記事をきっかけとして、OMC をやる人、競技数学が好きな人が増えてほしいです。っていうか最後まで見たんだし参加しろよ?な??(圧)
OMC は本当に楽しいです。参加しまくって、そして何よりも "楽しんで" 、世界中の数学好きと知り合ってみてくださいね!

※ この記事の作成に関して、全体的に sushitoruna 氏の AtCoder 紹介記事 (現在は非公開となっています) を参考にしました。この場で感謝を述べさせていただきます。

この記事が気に入ったらサポートをしてみませんか?