JOI2025参加記

Day0

交流をしました。

橋を作るときに芸術点で勝とうと無限回主張して何もかもが間に合わず...orz

Day1

比較的ライブラリの練習もしており、まぁひとまずボーダー前後の点数を取ろうという気持ちで臨みました。

exhibitionを読むとUC London既出ですねぇとなるがLinkCutTreeが書けず19点をひとまず取る。(嘘貪欲にハマっており、この時点で2時間弱だった気もする。)

exhibitionと並列でfortuneをやっていたが、ジャッジバグってて草とか思いながら手元のコードは修正して動かしていた。(これで競技が30分延長されてウケ)

適当に自明2進法をして47点を取り、3進法だとL=24くらいまでいけるなぁとか思っていたがTravelが解けたので実装をする。

Travelが最後まであわず自明10点で終了。

19-47-10で17位でした。(fortune最高点でワロタ、人々は何をしているんだ...)

Day2

1日でついた差は1日で取り返せる。

最初に謎コミュニケーションを見るとやるだけと書いてあるのでやるだけをする、が実装が5時間合わず、実装飽きたときに書いたanbulanceの焼きなましの9点のみ。

9-0-0で最低点でした。

あの??????????

なんとラストイヤーが終了してしまいました。悲しい。

day N+1

気楽な気持ちで挑みます。output only出ろ~とhiikunZと言っていたら出て面白い。

それ以外のBatchが本当に解けず、24-0-100でした。

day N+2

コミュニケーション張りつきをすることを決意。

事前に100点を取ったらトイレに行くと周りに圧をかけました。(グレーラインすぎる)

1時間くらいごちゃごちゃしていると、完全二分木まではわかり、木の時もごまかせば行けそうという気持ちになったので、早めにトイレに行き周りに圧をかけます。

しかし実装が合わず結局4時間過ぎたところくらいで100点を取りました。

安心して軽めのガッツポーズをしたんですがMtSakaには見られていたらしい。

適当に部分点を回収して100-0-15で最終16位でした。

Batch77点 非Batch247点でワロタ。

橙コーダーとしてあるまじき順位。

hiikunZの逆転とかshiomusubiの安定感とかやっぱすごいなぁという感じ。

MtSakaが幸せそうで面白かった。

来年以降チューターになりたいです。運営頼んだ!

JOIでできるかもしれなかった悪いこと Part.1

注意

フィクションです

実際にJOIでして怒られても僕は責任を取りません

リバースエンジニアリングは禁止されていたはず?

あと今はできるとは限りません(年々対策が強化されており...)

好評なら次を書きます

今年のJOI本選って各テストケースごとの結果見れたっけ?忘れました

今年の本選を解いていきましょう

A,B,Cは当然解けますね

しかしボーダーは300点では届きません(悲しい)

Dを見ると...?

D - 長いだけのネクタイ 2 (Just Long Neckties 2)

うーん、1点もわかりません

うーん、、

うーん、、、、

制約21でワロタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

はい

では解いていきましょう

適当にhashを作って時間に書き出せるか確認するよ~

よさそう

こんな感じの100通りくらいの値を判別するHashを2つ提出すれば大体のケースのHashが一意に定まりそう

これをしながら1~21まで出力するとよさそう

最近のChatGPTって優秀なんですね~(Hashの衝突については確認してないけど...)

実は1~21まで聞く必要はなくて、1~20でいいですね(YesNoだと片方でいいみたいな話)

答えが6になるケースないんですね、おもろ

 

埋め込みを頑張ると...

 

 

 

 

 

 

 

 

 

は???

ChatGPTが途中から嘘ついてて草

直します

うーん、実装が多少悪いのも相まって、Hashを実行時間に書き出すのに20ms以上の誤差が出ていそうです?入出力高速化や25ms単位の出力にして検証しました

何回か試してみたんですがたまに少し遅くなることがありそうで、Hashの特定には少なくとも2回はやったほうがよさそうという気持ちにはなりました。

余談なんですが、少し遅くなる の話なんですが、ちょうど2倍時間かかっているのが2ケース見つかったので、僕のコードのバグかあるいはAtCoderのジャッジのなんかなのかなぁと思っています。

まだWAですねぇ...

よく見るとHashが衝突している(おい)

適当にHashを増やします

草

提出回数は31回でした。だいぶ無駄は多いですがJOIの提出回数制限に収まりますね。

これは応用できますよね?

一般に、各入力に対して入力から出力の候補をC個簡単に列挙できるとします。(例えばYesNoであればC = 2)

Hashの時間への書き出しと、入力と正しい出力の対応の確認は同時に行えるので、

max(2log(100, テストケース数), C) + 1回の提出でできそうです。

(2log(100, テストケース数)の部分は2回実行×1回で100通りの情報を送れることを仮定しているので、適当にやればよくも悪くもなりそうです。)

ところで

テストケースごとに実行時間が見れるコンテストなんてものはほぼなくなってしまった(JOI...)のでこれは使い道がなさそうです。(かなしい)

一応実行時間が最大値であるものから順にHashと正しい出力を確認していけばO(C*テストケースの数)回の提出ではできそうです。

追記:

提出リンク

Submission #64067778 - JOI 2024/2025 本選 過去問

 

JMO予選で点が取りたい人向け記事

点が取りたい人向けのゴミ記事です

A

不等式とか最大値とか最小値とかの問題は大体

a1 = a2 = a3 ... = (min or max or avg)

x = min, y = max

 

C

大体寄与を考えるか適当な全単射で計算しやすい形にするかの2択

 

G

低難易度は大体座標とか余弦定理で連立方程式たてるで解ける

低難易度の方べき見落としがち

非本質な長さや角度は0にしたり90度とか60度とか適当に等号つけたりすると合う(ときもある)

 

N

低難易度は大体解が小さいか登場する数の約数の近辺

因数分解できるの見落としがち

 

 

 

 

 

JMO予選アドバイス

JMO予選アドバイスです

私は予選を1回受けて1回通っているので私は100%通る方法を知っているのとほぼ同値です。

予選を通過するための重要なポイントとして前年に春合宿に行くことが挙げられます。

肝心の春合宿に行く方法は.....

なんと前年の予選と本選を通過すればいいです。

まじめな話をすると、解けるやつ全部解けばいいです。自分が10時間かけて解けるくらいのやつ全部解いたら大体通ります。

もっとまじめな話をすると、会場に余裕をもってたどり着くのが本質です。私は一昨年結構ギリギリだった記憶があります。と書いてから予選がオンラインだったことを思い出しました。まぁこの記事の内容は大体適当なんで。

JOI2024参加記

参加記です

一次予選

はい

二次予選

はい

本選

day1

開会式

はい

チューター企画

初手でcyclic shiftするコードを書いて投げてみんなで手でやった

問8 問9をチームメイトと協力して通せたのがかなり大きい

プログラミング部分を全部担当していたが、1問間違えてしまってかなり悔しい

10^12は13桁!(戒め)

day2

はい

 

JJMO2023予選を振り返って

対策とか

特に何もしていなかった。何冊か幾何とかの本を買ったがまだ終わっていない。競プロのおかげでC分野は多少仕上がっていた。

当日

10時くらいに起きた。そのあと二度寝したが普通に間に合った。めちゃめちゃ眠かったけど大丈夫だった。

競技開始後

6くらいまでは特に問題なく終わった。6で前日にやった積の和典型がでてよかった。

ここで7,8,9に目を通して5分くらい机にぐだーってなって休憩する。

7が多少不安で、本当に達成できてるか不安だったので適当に数を割り当てて安心した。

8はよくわからなかったけどBC:AD=1:5が出た(逆かも)ので名前がよくわからないぶらーまぶぐたみたいな名前のやつを使って二次関数の最大値を求めるのに帰着した。実際に存在するか不安だったがまぁ大丈夫でしょうということで。

9最初最難に感じて飛ばした。

10適当にやると12x+6でおしまい!笑ってなって自信満々に答えて次に進んだんだが全然そんなことなかったのでちゃんと詰めなければいけなかった。ここは反省

ここで9に戻ってくる。オーダーが指数的に増えそうな気がしたのでN点を決め打ってのこりが一意に定まるみたいなのを考えた。なかなか点の打ち方が思いつかなくて焦ったが、真ん中からやってったら一瞬だった。これはおもいつけてよかった。

11 2022頂点の完全グラフにのこりの一頂点を付け加えることを考えて、頂点2023の色をAとして{A,A,B}の組を消費して1本辺を増やせることまで示したが、計算するかーってなったときに謎に{B,B,A}も消費してしまい間違えた。きちんと見直しをすべきでした。反省。

12 なにもわからなかった。相似とかで13*(相似比)とかになるんかなーとか思って適当に117/10にしたが全然違った。

ここまでで2時間ちょい、適当に問題を眺めながらぼーっとしてすごす。

終了後

sfliedとSakem1の11完、(不特定多数の)10完を確認してかなり悔しいになった。

10と11は絶対に落としちゃだめだし、12もそこまで難しくないらしいのでなぁ。

毎回ケアレスミスを言い訳にしていてダメだし、本選に対するモチベが落ちてきていてあまり良くない。見直しをしよう(自戒)。