2026/09/20~22 にオリンピックセンターで開催された JAG 夏合宿 2026 にチーム Phantasm として参加しました.
チームメンバー
- simasima : B4,考察と簡単な実装を担当
- noya2 : M1,典型・実装(・幾何)を担当
- ponjuice : B4,簡単な考察と実装を担当
まとまりのない文章になってます. チームでの参加記ってどうやって書いたらいいんだろう...
noya2 : 敬称略です.
day1
コンテスト:JAG セット 1
simasima : PCT が金と銀の風船を取りに行くみたいな話をしていたので,JLを見た.JもLも序盤にやる問題じゃなさそう.Gが構築なので見る.なんか123123みたいなのしか本質的に意味がないっぽい.小さいケースに気を付けてnoya2にパス.Dは誤読をしてしまい難しい問題を解いてnoya2に渡してしまいタイムロス.解法の修正が出来たのでギリ耐えた(耐えてない).Jは判定は出来るが構築が怪しい.これをponjuiceに話すと構築が出来ると主張してきたので投げる.Lは不変量がARC126Eで出てきた不変量で下界が見えて,よくよく操作を考えるとその下界が達成出来る.自分で実装した.ちょっとバグらせた.Fが解かれているので,Fを見る.これは左右どっちの|に消されるかを見る簡単なDPで解ける.これも自分で実装した.その他色々な問題が通り,残り2時間半で残り3問になった.簡単すぎないか?Eはponjuiceが出来ると言っていたので丸投げ.Aは木なのでnoya2に丸投げしてCをやる.かなり面倒だと思ったが,詰めてみると意外とすんなりいった.これも自分で実装してAC(コーナーには引っ掛かった).これをもっと早くやるべきだったかもしれない.Eが通った後,Aの考察に加わったがあまり上手くいかず.
noya2 : 初動は面倒そうなのを飛ばして DGI を順に見た. D はたぶん可能,G は構築なので simasima に投げる,I は問題文が長いがやるだけ. ponjuice の K が終わった直後に実装して AC. G を simasima から渡され,すべての場合分けを教えてもらった,その通りに実装して AC. simasima に D でできる操作の解釈を伝えて自分は典型の見た目の H に行く. まず,可能であり,そして実装はそこそこという感じ. segtree + manachar を写経しておく. 順位表は D をやれと言っているが,どうしても FA が欲しくて H の実装を始めてしまって全然バグってもそのままデバッグしてしまった. D の担当も自分だったので仕方ない. 半径と直径の取り違えの罠から抜け出してようやく AC,FA で助かった. D は simasima に操作がうまく伝わっておらず P が CK だけでなく KC も通過できると誤読した問題の解法を渡されていたが,なんか違うということになり適当に修正すると,より素直な解法が得られた. P, CK, CPK 以外は全部区切り文字としてよい. 階乗前計算の長さを間違えて 1 ペナ(こういうミスを減らしたい). D を AC した時点でコンテスト時間は残り半分で,ACE しか残っていない. A:noya2,C:simasima,E:ponjuice ということになり A を考える. が分からずに inf 分経ったあと自明な上界が達成可能であることに気づく, を増やす方向は簡単だが,減らすのが難しい. simasima との議論が交錯しまくって実装不可能ということになってしまった... サンプルを試すところすらいかないまま終了.
ponjuice: 前の方から英語の読解を頑張っているとKが通され始めたので、読んで通す。前の方の問題群に戻り頑張って読むが、読んだだけで解けそうと主張できる問題があんま見えなかったので、まだやりやすそうに見えるBを考える。比較的すぐにの偶奇が,から決まることが見えてきて、どうにかなりそうに見えてる。Gが通された後、実装しAC。simasimaにJの問題と木DPで辺の使う方向が決めれることを伝えられるのでちょっと考えると、頂点にいい感じに優先順位つければよさそうと思ったので、実装を考える。木DPで判定する部分でミスっているが、そのミスに気づかず1ペナ。ちょっと時間はかかったがFAが取れた。比較的自分にもやれそうなEが残っているので、これを解きに行く。simasimaに一次元のお話を聞き、それがいい感じに2次元に拡張できたので、詰める。色々と考察ミスがあり、時間がかかったが一応できたので出すとWA。ランテスを書くと、奇数のケースで上界が達成可能であることをそこで気付き、AC。Aは何もわからずfin
その後
noya2: 夜に開催される ARC++230 の Writer をしていたため,人がいない場所で Clar 対応&順位表観戦. 本質的な数え上げは 2 問しかないが 998 が 4 問あって辛い人には辛いセット(A,C の 998要素はド典型というやや強い主張). D がほとんど既出だったらしく中国勢にめちゃくちゃ解かれたし,そうでなくても D は BC よりも典型度が高かったためたくさん通された. 配点をミスってました... B,C は面白かったと言ってもらえて良かった. 自分の作問に対するフィードバックがすぐにオフラインで返ってくる良い環境だった. 合宿中で忙しいにもかかわらず参加してくれたすべての人に感謝
ponjuice: ARC++230 を談話室から出る。
A問題の二項係数の変形が解けず一生沼っているが、後ろにも自分が得意そうな問題がない!(まずい)
Bも少し考える時間を設けつつ、Aを粘着するが、結局解けずに太陽☀️
レートが -76 されるなどをしました😭
明日の問題noyaさん原案多そうだけど大丈夫かな?とか考えつつ就寝
simasima: ARC++230 でEに粘着するも解けず.おおまかな解法は合っていたらしい.Ratedではないので0完でもセーフ.
day2
コンテスト:AMATSUKAZE セット
noya2 が Writer をしているため,Phantasm は解散 →
OUT : noya2
IN : Nachia(from 阪大,参加者内で AtCoder レート最強)
で Nachia + simasima + ponjuice = EXTRA PHANTOM 結成
noya2 : ICPC 2025 のチーム AMATSUKZE のメンバーとして 5h セットを提供した. 基本的には JAG 運営の控え室で順位表を見守るなどしていた. 難易度予想を大きく外す問題があったり順当に解かれた問題もあったりして一喜一憂したほか,Rinshan Solution が強すぎて驚きまくっていた. J が早々に解かれたこと,B を意外と上位はみんな解いてきたことが印象的. 最難の一角であった E が倒されてすごかった. これも Rinshan Solution で流石すぎる. コンテストの最後の最後に EXTRA PHANTOM が G の FA を出して,これも流石. インタラクティブが得意な人なら解いてくれると思っていたから,AC が出て嬉しかった. 面白いと言ってもらえてよかった. 中盤枠の ABCFGJL は自分が作っていたため,AC が出るたびに感心していた. ありがとうありがとう
ponjuice: 初動は環境構築を担当。yawn at top の環境が普段の環境が違うので、苦戦しながら作成。序盤はsimasimaにIが区間スケジューリング*k 解けると言われたので、実装した後、主にライブラリの写経などを担当しつつFの考察。全方位木DPがライブラリにあることを思い出しライブラリを見てみるが、初めて見るので使い方がわからない!なので、自力実装を頑張り提出するが、TLEがつく。余分なlogをつけてしまっているので、logを落とそうとするが、この時にバグを埋め込みWA。ペナをつけまくったのちAC。その後simasimaとともにG問題の考察。もらったりくばったりするDPがlog二つでいい感じに回りそうという結論になり自分が実装を担当。ちょっとムズいインタラクティブなので当然WAが出るが、どこでミスっているかがわからない。ちょっと怪しいところをなおしつつqueryを飛ばすところにassertを入れて提出するが、REが出てこずWA。終了直前にnachiaがBを通してくれたが、Gはまだ直すべきところが見つかってないので、とりあえず一部分を簡潔に書き直し提出。WA。デバッグ出力の消し忘れを思い出し、急いで提出(終了2秒前)。諦めつつ結果が出るまでリロードしてみるが、ジャッジが返ってくるのが遅い。アツい。無事ACでドーパミンを大量に出させてもらいました。ありがとう。
simasima: 簡単枠のHを倒し,Iもエスパーで倒す.Jが解けたのでNachiaさんに実装を投げるが,これがなんと誤読でNachiaさんの時間を1時間ほど奪ってしまう.その後,Jに粘着するも解けず. で を疑わなかったのが悪いらしい.結局NachiaさんにJを回収させてしまった.ABはNachiaさんがやってくれるらしいので,Gに粘着.想定解のオーダーが分かりにくかったが,分割統治を思い出しponjuiceに実装を投げる.NachiaさんのBとponjuiceのGが終了直前まで通らずこのまま終わるかと思いきや,どっちも通って偉すぎ.(なお順位は変わらなかった模様)
その後
noya2 : 一般にオンサイト解説は飽きられがちということで,真面目な解説は書きはするけどちゃんと楽しんでもらえる工夫を施すことになった. 自分が解説を担当した ABFGJL では,主に余談を丁寧に話すことでその問題に取り組んでいない人にも興味を持ってもらえるようにすること,緩急をつける・聴衆を見ながら話すことでなるべく自然に笑顔になってもらえるような雰囲気を作ることを目指した. 概ねうまくいったし,twitter(現X) では JAG スタッフの winter さんに褒めてもらった. 嬉しい. YesNo 後の感想戦では,問題が面白かったと褒めてもらえた一方,一部の問題では不満(I がギャグすぎる・B のサンプルが弱すぎる)も出ていて要反省であった.
day3
コンテスト:JAG セット 2
noya2 : テンプレを書き終わったあと自分向きっぽい DH を見て,D は可能で H は不可能ではないはずということになった. simasima が初手でインタラクティブの G に行っていて大丈夫か?と思ったが普通にすぐ通って FA ですごい. 自分はそれに気を取られて K に AC が出まくっていることに気づかなかった,反省. ponjuice が F に行っていたが,なんか違うらしく,実装を奪って K を AC しておいた. 2 彩色 + 連結成分の個数を BFS でやるいつもの. その後すぐに ponjuice が F を FA していた,すごい. H の FA が出ていたのでやはり可能なのかということで見る. 恐らく Nachia が通しているはずで,正直そこまで信用ならないが,取り組んでみる. ローリングハッシュかパターンマッチングみたいな方向性でずっと考えていたが全然良い感じにならない. その間に simasima が B の FA を取っており,さらに simasima の考察 + ponjuice の実装で I の FA も取っていた. チームメイトが強いと自分が変な問題に幽閉されても大丈夫でありがとう. この時点で 4 FA ですごすぎる. H は twice substring の亜種を考える問題だが,ふと run 列挙のハッシュ系の解法を知らないことに気づき,run 列挙の time の解法である 分割統治 + z_algorithm に注目する. の周期として ではなくて の cyclic shift を考えてよいというのが上手くて,分割したときの左右のどちらに完全な周期が現れているかを両方試すことにすると,うまく z_algorithm が回る. H 問題は符号が付いているが,これは単に z_algorithm に投げる配列の後半を 倍するだけで OK. かなりシンプルで感動. しかし提出するとなんと 2 WA. z_algorithm の返り値の長さを だと勘違いしており,配列外参照していた. 3 ペナ目をつける前になにかがおかしいことに気付いて修正できて良かった. ponjuice の L も同じ感じで直したと思ったらまた WA,の連続になっていたが,同じタイミングで修正が完了してどちらも AC になった. 以降 simasima が C の幾何を考えている間,ponjuice が A の実装を,noya2 は J を考えていた. J がまじで分からない. ですら FFT 系の解法しかないように思える. bool 値だけでいいので bitset もあり得る. しかし の解法が出てこない. inf 分考えたが結論は出ず,いったん捨てることにして simasima が何かを主張している C に行く. 「こんな感じになると思うので実装してみて」→「違うらしいっす」を繰り返して,正しそうな time の解法を得る. 定数倍が十分良いと信じて投げると TLE で,WA ではないことからこれを高速化すればいけるかもということになる. 答えが min-max の形で書けていたから,小手先の枝刈りが効くかもしれないということになり,いったんランダムシャッフルとかをしない素朴な枝刈りだけ入れて提出すると,なんと通った. 提出直後に,これが落とせるとしてどうやって落とすんだ?と考えると嫌な気持ちになってしまったため,なんとなく通るような気がしたが,案の定といったところ. 制約がもう少し大きければ落ちていたらしい. A は本当に苦しそうだけど前に進んではいるという感じで,E を PC が空いている間に必要な部分だけ実装するみたいなことをしていた. が,終了間際に ponjuice が何かに気づいて実装すると sample が合うようになって提出すると AC,本当にすごい. C は何チームか取り組んでいたけど,A は不人気で,これを通したのは大きい.
ponjuice: Fを見ると結構読みやすく、割と貪欲が効きそうなことが書いてある。ちょっと考えると全体攻撃の回数として考えるものがN個ぐらいしかないので書き始めるがちゃんと考える時間をとっていなかったので、添字周りが怪しそう。他の人に実装を譲りつつ実装を進めAC。 I を読み考察してみるが嘘の考察しか出てこないので、一旦スキップ。LのACが出ているので見ると、文字列を?に変形して右か上に自由に進める形になってくれる。しかし、そこから良い解法が見えず、領域木を書き始めてしまう。simasimaにこれいい感じに更新できないの?といわれ、平面捜査をようやく思いつく。実装を始めるが、入力のnを盤面サイズと勘違いする,修正が足りないなどをしてしまいペナがかさんでしまう。申し訳ない。A問題を与えられるので考察を始める。貪欲に移動させるのが強そうなので、iとi+1の蟻がx回目の衝突をするのはいつですか?のmaxみたいな問題になる。これを頑張って解くのだが、調子が悪いのか、ありえない嘘の考察ばかりしており、嘘の実装をしてしまう。運のいいことに大体のコードの流れは変わらないので小さい範囲の変更を繰り返し、サンプルが合うようになったので提出。ACが出る。サンプルつよめで感謝。
simasima: 初手でインタラクティブをGを見るととても簡単なのでFA。Bも部分列を上からマッチさせると簡単なのでFA。Lでponjuiceに「これいい感じに更新できないの」という。Iが簡単なので、ponjuiceに渡す。通る。この時点で6完ぶっちぎりトップだったので、ペナ差勝ちを確信。と思いきや、HとLがなんか全然通らず、ペナ差が怪しくなる。その間Cを考えてHの後Noyaさんに渡すもサンプルが合わず。そこからなんやかんやして、1点を固定して凸包をとる の解法が生えて、枝刈りをすると通る。 の は通る!
その後
noya2 : Rinshan Solution が F でペナりまくったあと途中で潜伏し始めていた. こちらも YesNo までの情報戦に備えて J に CE を出したり終了直前に E に WA を出したりしていたため,YesNo 前の感想戦は茶番多めになった. Phantasm 目線では 10 完しているので,ペナ差を考えると Rinshan Solution が 11 完するかどうかに賭かっている. あちらは終了間際に大喜びするシーンがあったので,いちおう個人的にヒヤヒヤしておくことにした. Nachia と H の解法が同じであることを確認して,勝手に喜ぶなどしていた. JAG スタッフの shinchan さんに J について聞かれ,かなり考えたが何も得られなかったことを話すと,実は結構簡単で... という話をされた. 解説を聞いて納得した,普通に難しい. YesNo では Rinshan Solution が A,C を通していないことが判明して早々に優勝を確信することになった. 蓋を開けてみれば他のチームは A,C を通せておらず,なんと Unique AC( FA)だった. 6 FA で優勝!Phantasm が強い.