ICPC国内予選参加記

7月11日のICPC国内予選にチーム"Takoyaki-man"として参加してました.

結果は,4問完答ミスなしで39位でした.事故がなければ予選通ってます.

チーム編成

メンバー 学年 役割 備考
大学4回生相当 C以降を解く ぺろぺろキャンディグラフ
後輩A 大学2回生相当 A,Bを解く.解き終わったら編入試の勉強 チーム名の由来,JOI本選経験あり
後輩B 大学2回生相当 テンプレートを打ち込む.お茶くみ.チームのマスコットキャラクター 女子←重要,けっこうかわいい←超重要
コーチ 今年からの新任教員 コーチ兼監督 去年博士とったばっかり.NAISTで博士後期課程を2年で終了させてきたらしい.やばい

高専プロコンとの日程かぶり,その他もろもろの事情でこのようなメンバー編成となりました.
その上,チームメンバー全員が受験生(院試,大学編入試)のため,一回も練習してませんでした.

持ち込み

  • 自作ライブラリ(すぱそでよく似たコードを見た覚えがあるとは言わない約束.)
  • 蟻本第2版
  • アルゴリズムとデータ構造-基礎のツールボックス-
  • コンピュータジオメトリ
  • C++の本2冊(研究室にあったもの)
  • グラフ・ネットワーク・組合せ論
  • 新訳 データ構造とネットワークアルゴリズム
  • 数値計算の常識
  • 数値解析(共立数学講座)
  • 後輩Bが暇をつぶすための小説

他にもいろいろ持ち込んだけど,覚えていない.
なお,使用したものは自作ライブラリだけのもよう.

流れ

開始~

問題を全部印刷し,後輩AがA問題を,僕がC問題を考え始める.後輩Cは僕のソースコードテンプレートを打ち込み始める.

C問題に幾何があってびっくり.寝不足も相まって焦りまくる.
高さが下がったところについてギリギリはみ出ない位置を計算すればいいという結論に至る.
ただ,原点についてどうやって判定すればいいかで結構悩む.
ちょこちょこPCの前に座るものの,やっぱりいろいろと悩み最後まで至らない.

コーチの独り言:「東大やばい」

開始一時間後

ここまでで0完.さすがに0完はまずいだろうと思い,B問題を僕が解く.
上下を間違えてコーディングしていたものの,すぐに気が付きAC.
後輩がA問題でまだ悩んでいたので,「6時までにできてなかったらそれは僕が解くから」と宣言.

コーチの独り言:「東大やばい」

開始一時間半後

後輩がまだA問題終わってない.予告通り,A問題を読む.
後輩の計算用紙を見ていると,なんか一生懸命計算している.
それを見て一言.
「A問題でそんなに複雑な計算が必要なものは出ないよ.制限を確認したらわかると思うけど,これは2重ループで全部試行しても時間以内に終わるから.」

A問題のコーディング開始.10分もせずに終わる.コーディングしながら後輩にアドバイス.
「どんな手を使おうが……最終的に…制限時間内で正しい答えが出力できればそれでよかろうなのだァァァァッ!!(当然,ルールの範囲内でです)」

その直後,C問題を通す.

D問題を読む.何やらめんどくさそうでよくわからない.
E問題を読む.どこかで読んだことがある気がする.PCKとかPCKとかPCKとか.
でも解法覚えていない.
どうやら,葉のうちで距離が最も遠いものを選べばよさそう.
そのあとの問題にも目を通したが,なんだか高専プロコン勢の嫌いなサイコロや,僕の嫌いな幾何があった気がするので全部見なかったことにする.

研究室に様子を見に来た先生の独り言:「あれ?問題解いてるのblue_jam君だけ...?」

最後の一時間

Eのコーディング頑張る.
焦ってなかなかうまくできない.「おちつけ…おちつけ…」と独り言を言いながらコーディング.
ワーシャルフロイドを書いて消して,再帰で木直径を求めるプログラムを書いたり,かなり錯乱していたもよう.

コーチの独り言:「やっぱり東大やばい」

最後の10分

サンプル入力しても答えが違う.葉になる頂点にはいく必要がないことに気が付く.
あわてながらプログラムを修正.
サンプル通る.
どうせ通らないんだろうなーと思いながらデータ1を入力→提出→AC
これで間違えてたらいやだなーと思いながらデータ2を入力→提出→AC
後輩とハイタッチ.この時点で残り5分を切っている.

あと5分でDを解ける気がしないので,後輩と雑談しながら終わるのを待つ.

結果

1人で4問通しミスなし4完39位.予選は通過するはず.

反省

僕はもっと落ち着くべき.落ち着いて解いていたら,B,C,Eはもっと早く解けてて,もう一問ぐらい解けた気がする.残念.

A問題を解き始めてからは思考が口からダダ漏れでただの怪しい人だったと思う.本番でやると周りのチームの顰蹙を買うので直すべき.

練習していなくて,後輩の実力を把握しきれていなかったのも痛い.後輩の進路が決まったら勉強会と練習を行おう.後輩が十分な実力をつけるまでは,解法を話し合ってから,コーディングからを任せた方がいいかも?他のチームの戦略を知らないので,そのあたりをリサーチしておきたい.

競技中に後輩Aにかなりきつめな言葉遣いになっていた気がする.チームメイトを攻撃してもいいことは何もないので,直すべき.

うちの学校だと始めてのアジア予選出場になる.卒業するまでにアジア予選出場実績を作りたいと考えていたので一安心.

以上.