JAG 夏合宿 2023 に参加したので参加記を置いておきます(今更?)。コンテスト中のムーブはチームメンバーのmiscalc君が書いてくれている(→https://miscalc.hatenablog.com/entry/2023/09/21/204953 )ので、自分のことを軽く書きます。
きっかけ
某バイトで一緒に働いている人たちの間でJAGの話になって、自分は知らなかったため調べてみて知った。オンサイトの機会はなかなかないのでICPCのチームメンバーに持ちかけてみた。miscalc君も乗り気だったので行ってみようと決意(magsta君は来れなかったけど)。
1日目
チームメンバーが足りていないチームが前に集められて、AtCoderのレートでソートして良い感じにマージした結果、kumakumaさんに加わっていただくことになった。
この日はあまり調子が良くなかった。戦略はmiscalc君が書いてくれた通り。F問題はFunctional Graphの問題で、JOI典型みたいな感じがするので、こちらが担当すべきだったかもしれない。自分の担当じゃないからと思考を放棄しちゃって、「連結成分が複数だとややこしくならないか?」みたいな変なことを考えていた。あと、G問題もいかついDPにこだわっていたけどメモ化再帰にしてみた方が良かったかも。unordered_mapの定数倍で落ちるとかは気にしなくていいというか、そこで落ちるなら見直すべきはもっと別のところにある場合が多いので。
1日目夜
ABCに出た。最近は競プロをやる機会が少なく、コンテストに出るならある程度の難易度がある問題に当たろうと思っていたため、ABCはE,F辺りから解き始めている。この日もEから解き始めた。Fが丁寧に整理しないとこんがらがりそうなDPだったが何とか通せたので、A~Dの簡単な問題をパパっと通してGを見た。いかにもフローだったが、頂点の繋ぎ方が分からずに終了。フローに強くなりたい。
2日目
昨日とは違いkobaryoさんに加わっていただくことになった。この日は調子が良かった。B問題のFAが取れたのは嬉しい。誰も解いていないと「これはヤバい問題なんじゃないか」と怖がりがちだが、よく考えるとそこまで難しくなかった。
ついでにF問題も考察の肝になる部分を発案できたので良かった。
L問題は、近頃「フローに強くなるぞ」ということばかり意識していたので、問題を読んでからずっと二部マッチングみたいに頂点を配置して最小費用流にすることしか頭になかった。しかしこれは別に「二部」マッチングにならなくて、一般マッチングというもっとヤバそうな奴を使わないといけなかったらしい。ここで嘘考察にハマっちゃったのが少し悔しい。
2日目夜
ARCに出た。Bで冷えてる人多すぎだろ~と思っていたが、よく考えると自分は嘘で通したらしい。犯罪者?まあ、Dを終了1分半前に通せたし……(ただ、Bのテストケースが強かったとしたら、バグ取りにハマってDを通す時間はなくなっていたはず。)
DはSCCを求めて、そのSCCごとにマージして……というのを繰り返す問題で、今までまともに扱ったことのなかったSCCを使いまくった。一度AOJに出したことがあったのでそれを引っ張ってきてなんとか通したが、SCCくらいはライブラリ化しておいた方が良いのかもしれないと思った。
3日目
この日は2人で出ることになった。結果は微妙だったが、これは人数が少ないからというだけでなく、僕の調子が悪かったのもあると思う。
I問題の括弧列の問題が、実装方法は簡単なくせに思いつきにくくてしんどかった。Eも注目する場所を変えればもう少し簡単な問題に帰着できたらしい。こういうの思いつきたかったな。
まとめ
久々に競プロに打ち込んだ。日ごとに調子の良し悪しはあったけど、まだそれなりに戦えそうだ。複数人で協力するのは楽しいし、次のICPCでは国内予選通過まで行きたい。
あと、競プロやってる人と話したのもかなり久々だった気がする。最近は競プロの界隈からも離れていたので。もっとコミュ力があれば他の方々が話しているところに突撃できたのだと思うが……
最後に、運営の皆様、春合宿を開催してくださり本当にありがとうございました。