土下座しながら探索中

主に競技プログラミング

ACM-ICPC 2015 Tsukuba Regional Contest : つくば大会 参加記

ACM-ICPC 2015 つくば大会に参加したので記録

チーム情報

  • コーチ : 先輩 研究が忙しい中つくばまで来て頂き有難うございました 「あのシャワー水しかでなかったんだけど」
  • コンテスタント1 : 後輩T 競プロ歴2日 英語マスター バンバン訳してバンバン伝える 後輩Sと共にアルゴリズマーをやったりもする
  • コンテスタント2 : 後輩S 競プロ歴3日 アルゴリズマー+司令官 バンバン解法を出してくる 英語は苦手らしい
  • コンテスタント3 : 自分 実装+典型問題担当 分からないことをクエリー形式で後輩Sに投げまくる 

1日目
筑波へ移動

  • つくばへ向かう
  • 車内で腹痛に襲われる
  • 冷や汗が止まらず右耳も聞こえなくなり、加えて視界に黒い点が広がっていった
  • さらには吐き気、めまい等の細かい症状があり、その場に座り込もうかとも考えたが重病だと思われると気まずいので耐えた今思えば十分に重症だった..
  • 電車から降りたら治った

トライアルユース

  • 普段ならcontrolがある場所にCapsLockがありタイプミスしまくる
  • CapsLockが何故存在するのか考える
  • controlとCapsLockの位置を変える方法が分からないので後で某チームに聞きに行くことにする

Javaチャレンジ

  • とりあえず四隅のブロックの真ん中以外のスクエアに移動し、その後はブロックの存在する2方向に攻撃し続けるAIを書く
  • submitするがwaiting
  • 40分経過 waiting
  • waiting
  • ...

歓迎会

  • マグロのSUSHIが一瞬で消える
  • 豚汁が最高に美味しい
  • SUSHI 豚汁 豚汁 肉 サーモン
  • 川の流れのようにチーム紹介

宿舎

2日目

  • 昨日買った2種類のコーヒーをキメる
  • 腹の調子は良い、カピオへ移動

コンテスト
A : 0から順に存在するか確かめても十分間に合うくらい答えは小さい気がする => AC
トイレに行く

B : やるだけ => WA
後輩とデバッグ 実装、方針、解釈を確かめる どれも大丈夫そうで謎
コーナーケースを考えながらトイレに行く
数十分経過した時点で後輩から「ここは俺に任せて先に行け」と指示が飛んできたので次へ

C : 問題概要を聞きトイレに行く
  ちょうどn手でいける場所は状態遷移行列のn乗で求まるでしょ、しかし最小にする方法は謎
もう一人の後輩と一緒に考えるが謎
トイレに行く
数十分が経過した時、Bを任せていた後輩から声が掛かる
(後輩) : 一つ聞きたいんですが、このREPとはなんですか?
(自分) : REP(i,s,n) は for で i を s から n-1 まで1ずつ回してくdefineだよ
(後輩) : ではなぜ#define REP(i,s,n) for(int i=0;i<n;i++)なんですか
(自分) : !?

B : REPの初期値を修正し提出 => AC
テンプレミスで1時間40分溶かして辛い
トイレに行く
トイレから帰る途中会津チームの方をみると風船が6つあるように見える
n度見した後立ち止まって風船を数える、確かに6つある

D : 順位確認、会津が強い
Cが謎なのでDの概要を聞く
ただの巡回スケジューリングでしょ典型と言い残しトイレに行くがトイレ待ちのキューが詰まっている
トイレの中にスタッフを配置して複数人入れれば良いのに、、と考える
トイレから復帰し実装、提出 => AC

C : 後輩が思いついたそうなので話を聞きとりあえず実装
サンプルは一致したが弱いので一応一人1ケースずつサンプルを考えてチェックすることに
後輩の考えたサンプルが一致しない、方針がダメという話になる
トイレに行く スタッフが1人中に入り複数人入れるようになっていた
後輩から、今は幅優先でやっているものを優先度を付きにしたら良いと言われる
結構Ad-hocな感じで、なぜそれで良いのか理解できないので実装は保留
トイレに行き順位を確認する
会津がすごい順位になってる
会津凄い、会津強くない?」と繰り返し後輩に問いかけていたら後輩から集中しろと怒られる、申し訳オブザワールド
後輩と議論していると、ゴールから頂点をマージしていってスタートとゴールが同じグループに入ったら終了でそれまでのマージ回数を答えると良さげという話になる
実装、提出 => WA
コードをプリントしてデバッグ
行列の掛け算のことろでなぜかmod 2をしていることに気がつく
これは1以上になったら1にまとめるの間違いでは?
修正、提出 => AC

E : 残り10分くらいしかない、説明を聞くもよく分からない
実装間に合わなそうなのでコンテストを振り返ってみる

終了

結局4完21位だった
小さな実装ミスで大きくタイムロスをしてしまったので反省
今のチームはこれで最後(一人が他大学に行くため)なので、
来年出るなら一人は競プロしてる人、もしくは非競プロ勢を競プロ勢化して入れようと決意(自分が止まってもチームが止まらないために)
そのためには競技プログラミング部を作ったほうが良いかもしれない
アルゴリズマーの後輩は来年もいるので競プロ勢化したい

3日目
エクスカーションに参加し帰宅、即寝た