クマーの競プロ精進日記

AtCoder赤とICPC World Final目指して頑張ります.競プロ自戦記、アルゴリズムなどについて

WUPC2020参加記

クマー(自分)

クマー (@kuma_program) | Twitter)

 

つちのこ

nok0🐬🍊🍋 (@nok0_kyopro) | Twitter

 

zkou

zkou (@meander_uts1) | Twitter

 

この3人でTeam_SPJとして出ました。チーム戦に参加するのは初めてなのですがとても楽しめました。運営の方、あとチームメイトに感謝です。

 

 

 

直前になって私とzkouのAtCoderレートが1800を超えてしまったので、3人で出れなくね?レート調整必要か?みたいな話もしてたんですが、運営の方にこのようなことを言ってもらえたので3人で出られる運びとなりました。(許可して下さってありがとうございます)

 

 

 

以下、AC順に問題の振り返り。AB以外は出題順ランダムなのでとりあえずざっと流し見する予定だったのですが競プロの問題って理解するだけで大変だったりするのでそんなに簡単に流し見できないですね…。

 

 

A問題

つちのこがやってくれた。終わってから確認したが、まあ、はい。

 

B問題

若干詰まってて、自分もチラっと見たんだけど結局他の2人がやってくれた。終わってから実装方針を聞いて、なるほどなあ~と。(本当に青コーダーか?)

 

F問題

みんながA~Cをやってくれてる間に、簡単そうな問題を見つけたので一仕事。割と分かりやすい貪欲で、最初から最後までチームメイトに問題内容を見せないままやり遂げた。

 

C問題

最初に見た問題。なんかできそうだけど良く分かんねえな~と言っていたところでつちのこが見事にエスパーして通した。終わってからなるほどなあ~と(本日2回目)。

 

M問題

zkouがEの実装で苦労してる中で覗いた問題。通してる人数が多かったので簡単なのではと思ったら、普通の全方位木DP貼るだけだった。ただ自分の全方位木ライブラリを使いなれていなかったのでつちのこにお任せした。ライブラリのverifyも兼ねてあとで通しておこうなどと。

 

J問題

割と苦戦して、SCCか?などと思ってグダグダしてた。まあいかにも使いそうな見た目してるもんね。まあ使わないんだけど。

つちのこと2人で考えてたけど、結局自分だけが分かって、方針が正しい自信もあったから最後まで自分一人でやった。

 

E問題

チームにとっての最初の山場だった。TLE回避のため、普段はPython使いのzkouがC++で頑張っていたのだがなかなかバグが取れず、TLEとWAで2ペナ。本人曰くTLE出した時点で申し訳なさすぎて萎えたらしい。

そこからMやJの実装による中断をはさみつつ、通したときにはチームが湧いた。

…ところでこれ、自分は何も関与してないから分からないんだけど普通にいい問題っぽいのであとで解いておきましょうかね。

 

G問題

順位表を見たらかなりの人数が通していたのに、自分もつちのこも全然手が出なかった。2000^3を高速化してゴリ押そう!と言うつちのこを数回制止した。今振り返ると制止して良かったと思う。Eの実装を終えたzkouが見事に閃き、ペナを吐きながらもAC。私は途中で投げ出したのでコンテスト中はどうやって通したのか不思議なままだったが、あとで説明を聞いて納得。

 

 

I問題

Gを2人に任せている間にできそうなこれを考察。結局左上から右下に伸びる対角線上のor演算以外影響しないのでは?という予想は見事当たりだった。最後の詰めを包除でやろうとしたらzkouが二項定理を使った楽な実装を教えてくれた。サンプルが甘くWAに苦しんだチームもいたようだが一発AC。

…いや、実は操作を間違えて空のソースファイルを送ってしまったせいで1ペナついた。単なるケアレスミスなので本当に申し訳ねえ…。

 

D問題

はじめの方にあったが、問題文の複雑さと通している人数の少なさから3人とも避けていた問題。よく読んでみるとd_iとNが互いに素なので普通に逆元を掛ければ良いことに気付く。謎の連続WAで騒然としたが、intをlong longに変えるだけで通ったときは本当に申し訳なかった(2度目の全力謝罪)。long long は神。

 

K問題

この時点で残りが1時間弱でH,K,Lの3問。通している人数がどれも少なく、どれを選んでも大変だろうという印象だった。

数学問であるLをつちのこと考えていたが一向に考えが進まず、結局辛うじてできそうなKを3人で考えることに。あれこれ議論をしているうちに私が言った「点対称に置けばいけるんじゃない?」の言葉で一気に進展した。

N,Mのうち片方が奇数でZ==1のときにどうなるか自分は分かってなかったけど、あとの2人曰く後手勝ちだというので信じてそう書いたら一発で通った。この手の2択問題はコーナー見落としてWA連発がよくあるパターンなので、これを一発で通したのは嬉しかった。

 

この時点で22位。残り15分程度ではLが閃かず、あえなく終了。

 

 

解けなかった問題たち

 

H問題

直径を求めて、そこにバランスよくRGBを割り振るんだろうな~枝には適当に対称になるように割り振るんだろうな~などと考えていたがあまり自信が持てなかった。実装の空き時間につちのこに未証明のまま投げてもらったけど、無事サンプル直後のケースで撃沈。はい。

 

L問題

数学できません。東大前期2003に類題あったよ~って言われて、ああ…と。東大数学は受験生のときに60年分解いたはずなんですが…。

 

 

結果発表です。

 

f:id:kumakumatime:20200912203742p:plain

 

初のチーム戦 &全員青コーダーの割には頑張ったんじゃないでしょうか。みんながそれぞれ気付かなかったポイントをカバーし合えました。自分はKを最後に思いつけたので満足です。

23位にはoptさんのチームがいて、ラスト10分では「こっちがL問題思いついても実装時間足りないだろうけど、K問題をあっちに閃めかれたら秒で実装されて逆転されるから閃かないでくれ~w」とチーム皆でお祈りモードでした。(optさん、すいません…)

 

次のチーム戦はHUPC…?というか大会無限にありますね。夏休みはまだまだ終わらんよ。