JAG夏合宿2018 参加記
はじめに
JAG夏合宿2018の参加記です。
今年が初参加だったのですが、結構濃密な3日間だったので参加してよかったです。
3日間とも、ICPCのときのチーム Zerokan_Sunshine (@nakano, @kazuma, @suibaka) で出ました。
Day1
当日会場まで
原宿からオリセンまでが意外と遠く、その上雨が降っていたので大変だった。
代々木公園からオリセンは目の前に見えるのに、通路が見つからなくてめっちゃ迂回したのだけ覚えてる。
コンテスト
台湾の国内予選2017の問題を使っていたらしい。
僕は ABDEF を実装。
各問題の流れを以下に書く(Day1 に関しては書かなくていい気がするけど)。
- A問題
- 書いてあることを書けば通ります
- B問題
- 10年以上前のPCKみたいな問題だった。full house を hull house とタイポして1WA。
- C問題
- 僕は読んでない。kazuma が通してたかも?誤読して難しい問題解いてたとか聞いた気がする。
- D問題
- 実装ゲー。今見ている位置の前と後ろを 2 つの deque で管理していい感じに実装した。
- E問題
- 基本的な解法は瞬で、コーナーケースを忘れてて 1WA。これは割とすぐ気づけて(nakano が見つけてくれて)直した。
- F問題
- 他の問題を解いている間に nakano が実験して式を生成していた。なのでそのまま書いた。実装ミスって1回REしたけどすぐ気づいて修正(サンプルが弱かったので気づかなかった)。
- G問題
- どう見ても kazuma が得意なので丸投げ。投げたけど通らなかった。残念。
- H問題
- 解けなかった。パット見どっちにしろ実装大変そうだな~と思って考察もあまりしていなかった。
コンテスト後
生活リズムが崩壊していたところを徹夜で無理やり戻したため、20時ぐらいに睡魔が襲う。
そのまま寝落ちしてAGC寝ぶっち。
同じ部屋の人に聞いたところBが激しかったらしい。でなくてよかったね
Day2
コンテスト
Gifted Infants の3人 (yosupo, sigma, maroon, 敬称略)のセット。ヤバイ問題がちらほらという感じだった。
僕は ACFH の実装を担当。この日は僕が戦犯と化していた。
- A問題
- 中国剰余定理いきなり出すのかとビビる
- 冷静に考えると 17 * 107 通りしか無いのでやるだけだった
- B問題
- 知らないけど気がついたら kazuma が通してた
- C問題
- 基本方針はすぐ出て書いたけどサンプルが合わねえ
- よく考えたら約数を列挙した後にさらにそれを分割できることに nakano が気がつく
- 直して修正。WA。
- 偶奇の扱いが雑すぎた(というか修正しているうちに間違えて消していた)のが原因だった。直してAC
- この問題でぐだってるあたりが僕のチームの弱いところ
- D問題
- 何もわからないから後回しにしていたらコンテストが終わっていた
- E問題
- F問題
- G問題
- 嘘が生えては一瞬で嘘が判明するみたいなのを5分ぐらいやる
- 無理なので、無理です(は?)
- H問題
- なぜか kazuma に丸投げされた
- KMP すればやるだけというのはすぐわかった
- 何故かサンプルが合わない
- 最初に文字列を reverse していて(意味不明)、消し忘れていた。合うわけ無いだろアホか?
- 直して AC
- reverse に何故か全く気が付かなくて1時間ぐらい溶けた
- もしかしてKMPじゃなくて Zalgo だったっけ?とか、あまりにも通らないから SA で頑張って書くかとかいろいろ考えてしまった
- I問題
- ドン引き
- kazuma が解けないなら無理という感じで撤退
- J問題
- kazuma と nakano がやってた
- サンプルは合うけど全然通らなくてつらそうだった
- 解説を聞いた後にどうだったか聞いたら、普通に考察ができてなかったらしい
- K問題
- なんか場合分けしたら 2 パターンぐらいになるなあ
- 小さい部分問題になるケースと、そうでないケースの2パターン
- そこからすすまないので撤退、多分考えても解けなかったと思う
コンテスト後
この日は opencup もあったので参加。
opencup 終わってから気がついたけど、解いた問題のすべてを僕が実装していた。
流石に今日は実装しすぎて(一日10時間もコンテストやってるの異常では?)疲れたので、布団に入ったらすぐ寝てしまった。
Day3
今日は JAG の問題セット。典型が多くて僕は楽しめた。
僕は ACGJ の実装を担当。通らなかったけど E とかも書いてた。
- A問題
- よくわからないけど投げたら通った。こういうのが一番怖い
- B問題
- kazuma 誤読。WA が来て nakano に誤読を指摘されていた
- 難なくAC
- C問題
- nakano に概要聞くとやるだけだった
- AC
- D問題
- E問題
- やるだけやんけ(笑)となり書く
- T L E
- Day2 の再来か?となるが冷静に考えると普通に O(N^2) ですありがとうとなる
- ベクトル(直線)に分けて Convex Hull Trick みたいにやるんじゃないの、という話を適当にする
- なんかこのタイミングでは反応がいまいちだった(というか、どっちにしろ実装が非常に重い)ので保留
- 終わり際に CHT の話をしたらそれで解けるじゃん、みたいな空気に。結果的には取り組まなくても良かったけど、ちょっと危ないムーブだった気がする
- 定数倍改善を考えるがまあ通らないので諦め
- F問題
- G問題
- H問題
- どう見ても LP なので双対を取ってから最短経路かフローでしょ
- 最悪シンプレックス法とか(かける人がいないので棄却)
- 双対を取ってから詳しい人がいません、終了です
- I問題
- しらないけど kazuma が通してた
- J問題
- nakano が読んでいたので教えてもらう
- 奇数長で行けるなら +2k で素数は作れるからという話を聞く
- すると遇奇でわけて BFS やるだけなので適当に書いてAC
- K問題
- kazuma と nakano がやってたから関わってない
- あとで聞いたら超典型っぽい。通ったときはあまり解かれてなかったので意外だった
おわりに
最近まったく精進してなくて、久々の濃密な競プロ生活だったのでいい刺激になりました。
一つ心残りなのは、他の人と全然交流していないことですかねー。すでに知ってる人 or 相部屋になった人とちょっと喋っただけで終わってしまいました。
チェックアウト時も僕は腹痛でトイレに篭っていたのでお別れの挨拶もしていないし…。
夏合宿自体はかなり楽しかったです。夏合宿を運営してくださった方々には本当にお世話になりました。ありがとうございました。
ひょっとすると来年もお邪魔するかもしれないので、そのときはよろしくお願いします。