ICPC2026 国内予選 参加記 (winter_HPK : hato_視点)

ICPC2026 国内予選にチーム winter_HPK で参加しました!!

結果は全体8位 / 学内1位でした!!

順位表

チームメンバー

hato_

winter_HPKのH担当。チームの中での強みは特にない...。

ぷら

winter_HPKのP担当。チームの強さの10割は彼のおかげ。

kouty

winter_HPKのK担当。数え上げに強い。

 

コーチ

titan23

winter_HPKのコーチ担当。今年の北大は5チームに3人コーチが着いていて、titianさんはこのチームのコーチをしています。

winter_2521

winter_HPKのwinter担当。コーチではない。チーム名に名前をお借りしました。

 

チーム名の由来

北大のチームは数年に一度くらいの頻度で、OBの名前をチーム名にすることがあるそうです。今回は自分がそれをやってみたいと強く主張して採用されました。ありがとうございます...。

 

HPKの部分はチームメンバーの名前の頭文字を1文字ずつ取ってきています。

他にも、今話題の超かぐや姫!の英語名 CosmicPrincessKaguya! の略称のCPK!の1文字違いであるとことも意図されています。winterさんが超かぐや姫!大好きなので...。

CがHになっているのも、Hokkaidoっぽさがあるという話もあった気がします。

winterという英単語も意味的にHokkaidoっぽさがあるという話もあった気がします。

 

模擬国内

6/21に開催された模擬国内に参加しました。ぷら君は用事で最後の1時間だけ参加してくれました。

 

コンテスト

Aは自分が実装してAC。

Bはkouty君が実装してAC。

Cはkouty君から実装に不安があると聞いたので読みました。左端を全探索すると、右端は min(1個右のXの位置, K+1個右の_の位置) になるので毎回二分探索を書いてAC。

Dはkouty君がいけそうと言うので任せるが、サンプルの実行が終わらない。自分がEから戻って2人で考えると、枝刈りによる高速化を試みることに。実装ミスを指摘しながらkouty君がAC。

Eは自分で考えても何もわからない。2人で唸っているとkouty君が唐突にbit毎に決めると言い出す。正しいと思ったので実装してもらってAC。

Fは途中から来たぷら君に全部投げる。ACしてもらう。

残り時間でHに取り組んだがコンテストが終了。3人ともゲームは苦手っぽい。

 

後から北大勢で集まって感想戦をすると、Gの方が可能そうだった。

 

国内予選

当日は会場設営に遅れて参加。プリンターも問題なく設定でき、リハーサルでの確認もOK。メンバーも全員早めに集まったので安心しました。

 

コンテスト数時間前に戦略の話に。自分が問題文印刷とABをやって、kouty君がCを読む。ぷら君がD以降をいい感じにすることに決定。

 

コンテスト

Aは1,2に定数を足すことも考えたが、なんとなく怖いので1,2がある場合は場合分け。そうでないときmaxを出力する方針でAC。

Bは貪欲で良さよう。WAが怖かったがなんとかAC。

Cはkouty君から相談を受ける。水1マス毎に左右どちらにも壁があるかどうかが溢れるかどうかと一致しそうという直感だけ言う。kouty君が考えている方針も良さそうなので、良さそうと伝えるとAC。

Dはぷら君が苦しそうにしていたが、複雑だけどACはできそうと言うので任せる。ACしてもらう。

Eは自分が考察。最終的に全部の酒を買うので、必ず全てのジェムk個を手に入れる。そのため、max(0,n-k)個しかコインで買わなくて良さそう。この場合1個はジェム有りの酒を買う必要があり、それで十分そうなので実装してAC。

Fは少し考えていたが、ぷら君に任せることに。重実装そうだがAC。考察も実装も強くて助かる。

Gは自分とkouty君で考える。余事象を考えると最初にぶつかるマス全探索で解けそうということに。ぷら君に聞いてもらって正しそうと言われて実装するもサンプルが合わない。Hを考えていたぷら君が解けたと言うので実装してもらってHを先にAC。

Gのデバッグをしていると、ぷら君に考慮漏れのケースがありそうと指摘される。どの方向からぶつかるかの考慮が足りていないことが判明し、修正してAC。

残り時間でIを考える。ぷら君の考察を聞いていると、解けたと言われる。話を聞いていると解法は正しそうなので実装してもらう。横からたまに指摘をしつつ実装を見守るも、サンプルの後ろのケースは一致するのに前のケースでは一致しない。この時点でコンテストが終了。

 

感想

結果は8完8位。Iの実装は9割くらいできていそうなので、あと少し時間があれば9完も現実的だったと思っています。時間がなかったのはGの解法を詰めきれていなかったからなので、苦しい...。

チームはかなりぷら君頼りなので、もっと強くなって横浜では貢献したいと思います。

 

 

The 2025 ICPC Asia Yokohama Regional Contest 参加記 (y_1 :hato視点)

ICPC2025 横浜Regionalに北海道大学のチーム y_1 として参加しました。

チーム紹介

以下の参加記を参照してください。

hato336.hatenablog.com

国内予選

以下の参加記を参照してください。自分では書いていないのでチームメンバーの参加記になります。

ococonomy1.hateblo.jp

準備

北海道大学から横浜Regionalに参加する場合は金土に宿泊する場合と金土日に宿泊する場合が多いそうです。特に授業などの出席が必須な用事がなかったため、3泊することにしました。

ホテルと飛行機は国内予選の数日後に予約しました。荷造りは台湾のものをそのまま流用しました。

Day 0

リハーサル前日の金曜日です。飛行機から降りてスーツケースが流れてくるのを待っていると、同じ北大の別チームであるAkai_Koibitoのtitanさんとtardigrade君と同じ飛行機に乗っていたことが判明したため、合流して横浜まで向かいました。

横浜駅で用事があるtardigrade君と別れてtitanさんとフードコートで昼飯を食べた後、ホテルに向かいました。

フードコートで食べた大阪たこ焼き

チェックイン後は横浜駅周辺を散策した後で横浜中華街に行きました。北海道大学では毎年、サークルのOBと中華街で会食をすることが恒例となっており、今年も開催されました。会食の時間まで中華街のGiGOで暇を潰しているとコーチやOBもやってきたので合流して店に向かいました。会食の写真はありませんが、とても美味しかったです。ありがとうございました!

かつて札幌のESTAにあったそごう

横浜中華街

Day 1

リハーサルの日です。昼食を北大の何人かで集まってとることになっていたので、それまでホテル周辺を散策していました。大桟橋からの景色は横浜の街並みが綺麗でよかったです。赤レンガ倉庫は1号館と2号館の間のスペースがクリスマスイベントの準備で埋まっていたのと、後ろ側が鉄筋らしきもので補強されているのがちょっとがっかりでした。

大桟橋からの景色

赤レンガ倉庫

昼食を大きな通りから一本入ったところの店で済ませた後にコンテスト会場に行きました。

台湾で知り合った東京科学大学のjupiterさんがスタッフをされることを聞いていたので探し出すぞ!と意気込んでいたら受付にニコニコ座っているのを見つけて目標がすぐ達成されました。

リハーサルはいつも通り環境構築をococoさんに任せて一人1問ずつ通したあとはコマンドを確認したり全てのジャッジ結果の回収をしていました。4問目は解かなくていいと思っていましたが、チームメイトからやるだけだという指摘をもらったので書くだけ書いてACしました。

練習としてClarを送るように言われていたので、台湾でTsukuyom1が台湾おすすめグルメをClarで聞いていたのを参考に、横浜観光スポットベスト5を教えて欲しいとClarを飛ばすと、generated by ChatGPTが返ってきました。

 

夜は横浜中華街で食べ歩きをしました。テレビで数日前に見た叉焼メロンパンが実際に食べれて感動していました。

ごま団子

叉焼メロンパン

Day 2

コンテスト本番の日です。会場が開く前にささっと周辺を観光していよいよ本番です。時系列があやふやなところもあると思います。

 

チームとしてはococoさんが環境構築、kouty君が後ろから、自分が前から問題を読みました。Dが解けたのでococoさんに実装を投げるとWA。オーバーフローしました。自分はオーバフローを意識していなかったし、ococoさんもサンプルを見逃していて痛恨のミスです。文字列で値を持つことにしてなんとかAC。次からはサンプルと比較するスクリプトを書くことにします。

BやCが解けそうと考えているとEが解かれて、実際に解けそうだという話に。確か自分がa/x,b/x,c/xしか候補がないことを指摘して実装をkouty君に投げます。サンプルが合わずにオーバフローを疑っていたため、int128の使用を勧めるも変わらず。結局オーバフロー回避のために割り算をしているところで、本来切上げにすべきところを切り捨てにしていました。自分は切り捨ててでいいか確認されたのによく考えずにはいと言ってしまったため、またしてもミス...。

次にHを、自分が左上から貪欲に消せば良いと思いついて実装するもWA。コードをprintしてデバックすると、U字の判定にミスがありました。焦って修正しきれずに提出もして2ペナでAC...。ミスしすぎです。

Cは自分が関わっていないところでAC。ありがとう...。

Iの大まかな解法をkouty君が提案してくれたため、ランテスを書いて確かめてから提出することを提案。最終的に自分がランテスだけ書きました。kouty君がランテスを使って苦しみながらAC。

Jをkouty君と2人で考える。自分が「I,Pを黒、Cを白にすると2*2領域に白黒が2つずつある必要があり、黒は後でいい感じに復元できそう」と言い出しました。ococoさんが白黒の塗り方を思いついたため実装を投げてWA。黒から復元するパートでのミスや、塗り方の考慮もれを修正してなんとかAC。

6完した後で30分くらいしか残っていませんでした。ここで、Aを誤読していました。自分は「1枚のタイルを隣接に移動するという操作を何度でもできる。操作回数の最小化」だと解釈して、ococoさんは「1枚のタイルを選んで好きなだけ動かせる。動かす枚数の最小化」だと解釈していました。実際は両者とも間違いで、「いくつかのタイルを選んで、選んだタイルを隣接に1度だけ動かせる。選ぶ枚数の最小化」らしいです。(今もこれでいいか不安です。)コンテストでは自分が誤読してococoさんの解釈が正しいと思っていました。誤読してなかったら解けていたかというと怪しいですが、今後は誤読がないように英文読解能力の向上が必要だと痛感しました...

Aが解けそうにないためGを考えましたが、数え上げる数列の条件はわかったものの、そこから先がさっぱりわからず弁当を食べました。

 

結果はCDEHIJの6完16位でした。台湾と同じ順位で奇妙な縁を感じます。

6完16位

上振れしていたらもう1完あったかもしれませんが、16位はチームの実力がよく発揮できたと考えています。

 

スポンサー賞として、モノグサ株式会社さんからボードゲームをいただきました。自分はquoridorというボードゲームをいただいたので、自分が所属する研究室に置いています。

 

懇親会では主に北大勢と話したり、空腹を満たしていました。スポンサー賞をいただいたのとサークルのOBの方がいるのでモノグサ株式会社さんのブースに行きました。

 

懇親会後はコーチのwinterさんと横浜観光をしました。色々あって横浜のロープウェイに乗った後、目についた商業施設などにとにかく入りまくっていました。2時間半くらい歩いて無事にホテルまで戻りました。疲れたけど面白かったです。

ロープウェイからの景色

Day 3

北海道に帰る日です。研究室へのお土産を買った後で早めに空港に移動しました。新千歳空港の雪の影響で飛行機が引き返す可能性があると言われていましたが、1時間の遅延だけで無事に北海道に戻れました。空港で有名なえびそばを食べて帰宅です。

えびしお そのまま

感想

初めての横浜Regionalで大きな悔いなくコンテストを終えられてよかったです。横浜での成績では届かなさそうですが、台湾での成績で現状Championshipへの出場が現実的なので、もう一度頑張りたいと思います。

 

The 2025 ICPC Asia Taichung Regional Programming Contest 参加記 (y_1 : hato視点)

ICPC2025 台湾Regionalに北海道大学のチーム y_1 として参加しました。

チームメンバー

hato_

Atcoder Algo 大会参加時/highest : 1958/2106

チームの中でABCが得意なため、典型を担当している。

ococonomy1

Atcoder Algo 大会参加時/highest : 2071/2082

チームの中でARCが得意なため、考察が要求される問題を担当している。また、タイピングが速いため、ライブラリの写経や簡単枠の実装も担当している。

kouty

Atcoder Algo 大会参加時/highest : 1876/2007

チームの中で数学的な考察が得意なため、それが要求される問題を担当している。

 

参加した経緯

HCPC(北海道大学競技プログラミングサークル)では近年、5月ごろにICPCに参加したい人が集まってチーム決めをしています。その段階では台湾Regionalの話がありました。

実際にそこでチーム y_1 が結成された段階で、国内予選の結果に関わらず台湾Regionalに出場してChampionshipへの出場確率を上げたいというような話がチーム内で出ました。

チームで2024の台湾Regionalの問題を解いてみて、その年のChampionship出場が狙えそうな成績が出たことも踏まえて、台湾Regionalに参加することにしました。

台湾渡航準備

ICPCサイト上での参加登録が開始される前に、チーム全体で台湾Regionalへの参加を決めていたため、参加登録が可能になった日のうちに参加登録をしました。

 

北海道大学からはAkai_Koibitoというチームも台湾Regionalへの参加登録をしていたため、以降の渡航準備は2チームで相談しながら決めました。

 

参加登録の締め切りが何度か延長されて参加確定が遅れていたためメールで問い合わせをすると参加が確定していると教えていただいたため、飛行機とホテルの確保をしました。話し合いの末、飛行機は CHINA AIRLINES の以下の旅程のものを選びました。

選んだ理由は、新千歳空港からの直通便であり、スーツケースを預ける前でかなり安かったからです。帰りの便は早いですが、気合いで起床して間に合わせることで合意しました。ホテルは予約しようとしていたホテルが埋まってしまったため、ツインスターホテルというホテルを代わりに予約しました。他には空港からホテルまでの交通手段の確認や海外での通信手段の相談をしました。

Day 0

この日は台湾への入国とホテルのチェックインをしました。

新千歳空港

台湾到着

台中駅到着

ホテル到着

ホテル到着後は近くのスーパーなどを散策した後、次の日に備えて就寝しました。

Day 1

この日はコンテスト会場である Asia University でRegistrationやpracticeをしました。

Asia University 到着

上段の左から4番目が北海道大学のロゴ

practice

practiceでは環境に慣れるため一人1問実装し、準備したコマンドチェックやエディタの設定、ライブラリの写経の練習を行いました。

台中駅フードコートで食べた鍋

この日のイベントが終わった後は台中駅のフードコートで夕食を食べて、明日に備えて就寝しました。

 

Day 2

この日はコンテスト本番がありました。

以下コンテストのネタバレを含みます。

 

 

自分が一部でも関わった問題はABEFJKLです。

 

Aは読んでやるだけとわかったため、ococoさんに説明して実装してもらいました。

 

Bは3人で考えて、バスに高々1回しか乗らず、乗るバスによって到着時間が決まるとわかると実装方法を自分が思いついたので実装してACしました。

 

EもAと同様に、読んで説明して実装してもらいました。

 

Fはkouty君と少し考えて、区間を伸ばすことでコストが大きくならないことに気づき、kouty君が実装方針をまとめてococoさんに伝えてACしてもらいました。

 

Jはkouty君とかなり考えて、壁と壁の間を1行ずつ試すと領域の数がO(N^2)になるが区間が変わらないところをまとめるとO(N)になることに気づき、上から分割統治っぽくできそうと気づき、実装をkouty君に任せて横から口だけ出してACしてもらいました。

 

Kはコンテスト終盤に他の2人がIを考えている最中に愚直を実装するのが良さそうと思ったため、Iの実装が詰まった段階でPCを奪って少しずつ実装して終了10分前になんとかACできました。

 

Lはkouty君とococoさんで方針をまとめて実装をしていて、WAが出て先頭K個と末尾K個のFlipをうまくDP遷移に落とし込めていないことがわかったので、先頭と末尾に操作をするかどうか全探索すれば良さそうと指摘して実装は任せました。TLEを定数倍高速化でなんとか解消して最終的にはACできました。

 

 

 

 

結果は凍結前6完で凍結後に3完をして合計で9完16位でした。個人的に凍結後に1問はACしてYesNoでYesと言われたかったためよかったです。

YesNo 1

YesNo 2

YesNo 3

YesNo 4

Silver Award

コンテストの結果は、100%満足がいくものではないものの、慣れない海外の地での初めてのICPCで実力をしっかり出すことはできたと思っています。Championshipの進出は現時点ではわかりませんが、可能性があるラインに滑り込むことができてよかったです。

 

 

コンテスト終了後に他の日本の大学から来たチームの人と観光をしました。

宮原眼科というアイスクリームショップ

台湾名物の夜市では、東京科学大学から来たチーム Tsukuyom1 の jupiterさんとZOIさんの2人と臭豆腐を食べながら話しました。互いのチームの戦略の話や競プロの問題の考え方、サークルの話などで盛り上がりました。臭豆腐は匂いは最初気になるものの段々と慣れてきます。中がふわふわで、付け合わせの野菜と一緒に食べると野菜に酸味とバランスが取れておいしかったです。

臭豆腐


Day 3

この日は台中バス観光ツアーがありました。ツアーは行き先が知らされていなかったため、昨日行った宮原眼科にもう一度行くことになりました。違うフレーバーが楽しめたのでよかったです。

台湾の伝統的な屋根

2度目の宮原眼科

現地のレストラン

台中国家歌劇院

彩虹村

次の日は朝8:35の飛行機に乗る必要があるため、この日に桃園国際空港のすぐ隣のホテルまで戻って早起きに備えようと思っていましたが、空港で飲んだ台湾ビールが美味しくて部屋に買って帰ってチームで飲んでいたため、日付が回ってから就寝しました...。

 

Day 4

この日は気合いで早起きした後、すぐに空港に向かって搭乗手続きを終えて帰国しました。

 

旅費

  • 飛行機代 : 47000円
  • ホテル代 : 28000円
  • 参加登録費 : 10000円
  • その他(交通費 + 食事代 + 遊興費) 15000円

合計で10万円くらいでした。ホテル代の半分は桃園国際空港の近くのホテルに泊まるのに使っているため、飛行機が旅費を圧迫していそうです。新千歳空港から桃園国際空港への直行便が少ないためこうなってしまいました。

 

まとめ

初めての海外、初めてのICPC Regionalでしたがコンテストで実力を発揮することができたと思っています。大きなトラブルもなく、海外そのものも楽しむことができました。来月のYokohama Regionalでも実力を出し切れるように頑張りたいです。

 

AtCoder 入黄しました!!!!!

黄色達成時のデータ

 


自己紹介

大学生です。学部3年です。競プロは大学入学後すぐにに存在を知って、それから半年くらい経った後にふとやる気が出たので始めました。

 

〜青色になるまで

あんまり覚えてないです。どの色の時も「1色から2色上の問題で使うアルゴリズム・データ構造をふんわり理解して、1色から2色上の過去問をたくさん解く。」を繰り返して青色になった気がします。

 

青色〜

青Diffあたりから要求される知識や発想が重たくなるように感じたので、まずはABCのコンテスト中に青Diffをしっかり通せるように青Diffを集中的に解きました。

青Diffがそこそこ通せるようになってからは黄Diffをメインに解きました。

 

言語選択

自分はPythonメインで競プロを今までやってきました。C++を使っていない理由は正直乗り換えが面倒というのが1番の理由です。それでも、C++を少しは書けるようにしているのでコンテスト中や精進中に困ったことはあまりないです。今Pythonを使っていてC++への乗り換えを検討している人には、C++をサブ言語のようにすることをおすすめしたいです。

ただ、ICPCのチームの関係で今後はC++も今のPythonと同じくらい書けるようにしたいと思っています。

 

おすすめコンテンツ

はい、本題です。自分が競プロをしてきて実際に使ったおすすめコンテンツを紹介していきます。超有名なものには触れないです。

AtCoder Extension

いきなりVSCodeの拡張機能で申し訳ないです...

AtCoder上の問題のurlの一部を入力することでいい感じにフォルダを作成して、あらかじめ用意したテンプレートファイルをいい感じにコピーして、問題のサンプルケースをダウンロードしていい感じに配置してくれます。とにかく綺麗にまとめてくれます。あと提出もできます。

(AtCoder生成AI対策ルール - 20240607版には、「空ファイルを作成する、もしくは問題文に依らず同じファイルを作成するツールは許容されます。」、「問題ページでコピーボタンが表示される項目は、任意の場合においてコピーが許されます」と書いてあるので、現状この拡張機能はルールに反していないと考えています。)

この拡張機能で簡単に手元でサンプルを試すことができ、Debug Taskを使うことでサンプルを用いてVScodeのデバッグ機能を使うことができるのでおすすめです。

何より、VSCodeさえあれば拡張機能の欄からすぐに導入できるので、競プロ始めたてで、パソコンよくわからない自分にはめちゃくちゃありがたかったです。

Atcoder Gacha

AtCoderの問題をランダムに表示してくれるやつです。Diffの色の指定と既ACの除外などができます。

通学時間やちょっとしたスキマ時間に問題を頭の中で考えて、まとまった時間がある時に実装してみるというサイクルで精進しているので、スマホでサクッと問題が提示されるこのサイトには前からお世話になっています。ありがとうございます。

昔開催されていた謎のコンテストとかが表示されるのも、探しにくい問題を教えてくれるという点で好きです。

Atcoder Problemsで問題を探すとつい苦手そうな問題を避けてしまいがちなので、「次に一番上に表示される問題がABCの問題なら考える!」というふうにすることで満遍なく問題を解くことにも繋がっています。

PAST本 (上級~エキスパート編)

その名の通りPASTの本です。詳しくは見出しのリンク先にありますが、DP, フロー, セグ木, 遅延セグ木, 平面走査などのアルゴリズムが学べます。名前にPASTと書いていますが、ABCなどにもとても役立ちます。

自分はこの本を青色の時に読んで、青色あたりで必要そうな知識を固めることができました。特に、演算を自分で設計するタイプの遅延セグ木の理解に役立ちました。

ネットにはC++のコードもありますが、本に載っているコードはPythonで書かれているので、特に水青くらいのPython使いに特におすすめしたいです。

 

終わりに

今後やりたいこと、目標として

  • ICPC国内予選突破 (去年僅差で逃したのがとても悔しい)
  • アルゴレート2100到達
  • ヒューリスティックの本格的な勉強

があります。頑張るぞ〜