beet's soil

競プロのことなど

ACM-ICPC 2017 Asia Tsukuba Regional

うぃーんビートビートひるどwwwwwwうっくっくwwwwwwえいえいえt(←いずらいt)いえいwwwwらて。

えー6完8位でした これはさっき食べたラーメンです 美味しかったです

【~0日目】

コドフェスやらでできなかった日もあったけど毎週二回水曜と土曜に
AOJで五時間地区大会の過去問をやっていました。
練習量だけなら日本一なんじゃないでしょうか(イキリ)

書き忘れてたんですがこれはイキリポエムなのでこれからたくさんイキリます(いえいwwwらて。

虚無regionalはやばい問題が色々あって精神力が鍛えられました。
時間帯によってverdictが変わるジャッジや、小数点以下6桁固定の完全一致ジャッジ、
マルチテストケースで当然のように5000ケース存在する問題など、諦めない心の重要性を学びました。

何回かうしさんやらてさんが参加してくれて解けなかった問題を教えてくれたりして助かりました。

解けなかった問題をgoogle spreadsheetで管理して誰か一人は解けるようになるようにしました。
これが結構よかった気がします。(Vjudgeのソースコードを写経したりしてました)
アジア地区対策 - Google スプレッドシート

謎データ構造をうしさんから結構吸収できてうれしい。

韓国大会でFFTを用意していなくて悔しい思いをしたので結構がんばりました。
結局つくばではライブラリをあまり使いませんでしたが無駄ではなかったと思っています。

【0日目】

CodeSprintで睡眠こわれる MLEがverdictになくてキレる
服乾かなくてどうするねんとなる こまる

【1日目】

起床ACしたので実質優勝みたいなところがある。
電車でだらだら戦略の相談をしたりする。

予選の時にコーダーを一人(僕)だけにしたら割と上手くいったので
それからはそのスタイルで練習していて、今回もそうしました。

つくばに昼過ぎにつくば。いろいろ変わっていてエモい。

先生方と合流してレジる。なんか見たことある人がいっぱいいた(それはそう)。

practiceで向かいがlamaltettaでウケる 
うくさんが競技プログラマー情を持ち込んでいたので煽るなどする
https://www.amazon.co.jp/%E7%AB%B6%E6%8A%80%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E6%83%85-%E3%82%B8%E3%83%A7%E3%83%BC-%E7%AC%AC%E4%B8%80%E8%A9%B1%EF%BC%9AHello-World-%E5%90%8C%E4%BA%BA%E8%AA%8C-ebook/dp/B01MS53YUZ

飲み物と食べ物が席で食べれないと言われまじ?となる
時間まで暇だったのでcodesprintのアを非再帰に書き換えたらREが取れて最悪って感じ
チーム紹介文がみんなふざけていて来年以降の参考になった
キーボードが固くて戸惑う 封筒を開けるの難しすぎる

問題は全部やるだけでまあはいって感じ うくさんがCは不可能とか言っていて面白かった
verdictをコンプリートするためにいろいろする
アナウンスのカウントダウンに合わせてfinal submitしたら too lateでウケる(めっちゃらて。

gnu拡張とか __int128_t とかも動いた
ジャッジのレスポンスが悪くてverdict出るまでに5分以上かかったりしていて不安になる。

懇親会会場に移動する 一生stay hereと表示されていてア
バス二台あるのに1台目に貪欲に乗せられていてえぇ…ってなった 当然2台目に乗る

会場に着く 学費イルミネーションが光っていてウェイじゃんとなる
料理と飲み物があるのにしばらく待たされる 

うしさんを見つけたのでおっうしじゃ〜んをする らてさんを発見する


かなしいね

チーム紹介を見る 文の方はネタに走っていたのに真面目でビビる
うしさんがタプリスと名乗っていてつおい(メンタル的な意味で)
うくさんが自分の†真名†を忘れていてウケる ウクニキアつおい(メンタル的な意味で)

nocowの紹介の時にバタコさんが「あのイルカ闇討ちしたい」って言っていておもしろかった

なんか研究学園までバスが出た ARC前にホテルに到着できたので出た。
Dの制約を読み間違えたりポカミスで1WA生えたりしたけどEが得意だったのでいえい。
27thで橙コーダーになった(おまけに初赤相当パフォ)

日付が変わる頃に就寝。

【2日目】

起床ACしたので(ry

CodeSprintなんてなかった、いいね?



ご飯食べてTX乗って会場行ったら割とすぐコンテスト開始だった。

// ---------------------------
// ここからコンテスト
// ---------------------------

始まる前に僕がABCを通している間に他の二人が問題文を読むみたいな戦略を立てていた
のでとりあえずABCを読む

その間にはじさんに環境設定をしてもらう 10分ぐらいで書き終わってた

Aは長さ1,Kの黒いのと長さ1の白いのを交互に積んでいく通り数の問題だった
ぱっと見やるだけだったのでBを読む TLEが10secで不穏すぎる
m点与えられてm/2本の直線をつくった時に平行になる組がいくつあるか?
幾何でやばそうなので飛ばす 難易度順とは??
怖くなってAを見直す サンプル試して誤読に気づく あぶないあぶない
Cを読む 読めない サンプルなんやこれ ちょうど書き終わったはじさんに投げる

DOMジャッジにログインしたりサンプル落としたりする
A書く まあやるだけなのではい AC(0:15)

BはTLE10secだし最悪探索が間に合うんやろとなる 
O(m^4)で直線を列挙しておくと楽そうな気持ちになる

ローカルで4.2秒くらいで怖かったけどとりあえず提出 AC(0:41)

はじさんと二人でC読めねえ…って言っていたらうくさんが読んでくれた
この時点でうくさんはF~Kまで読んでくれていてすぐ解けそうな問題はないらしい

まあ読解ができればはい 先頭からの累積和と最大値を持っておけばできる
O(1)でできた気もするけど二分探索を書いた 境界値ミスって1WA かなしいね AC(1:13)

Dが幾何っぽいのでとりあえず凸包を写経してもらう

うくさんがFが解けたというので聞く なんか前半パートが本質でわかりわかりとなっていたら
後半でDPをするとかいいだしてなんやこいつとなる


まあ押し切って橋の列挙をする

Dを中断してもらって(Pointくらいまで書き終わってた(伏線))
二重辺連結成分分解を写経してもらう ついでにdijkstra
お腹が減ったので食べにいく Klabドリンクがあってテンションが上がる

まあ詰めると二回dijkstraして余計な辺を消した後向きを消してえいみたいになる

気持ちで書く サンプルが合わない 印刷するデバッグのためSOSO1 SOSO2 SOSO3とする
変形後のグラフが間違っているっぽいけどなんでやとなった うくさんが教えてくれる

出す WA なんでやジャッジバグってるやろと思ったら↓ ごめんなさい、、 直してAC(2:31)

順位表的にIとGに絞る Iの方が解かれていたのでしばらく考える
小さい方は累積和やるだけで大きい方の最悪な行動がわからない
サンプルをエスパーして高々最小値+1なのではみたいな仮説を立てて実装し始める

水の飲み過ぎでINF回トイレに行く 帰ってきたらうくさんが反例を見つけていて冷える
うくさんによると最大のoverlapしている数みたいなのを見つければいいらしい 不可能では?

冷静に考えて(冷静に考えると冷静ではなかったんですが)これは二次元の矩形クエリで解ける
直前にライブラリ整備していたんですが印刷を忘れていたことに気づく ア
とりあえずうし木をはじさんに写経してもらう 

平行してGを考えてた このへん記憶が曖昧 よく考えたら展開図を書くと綺麗になることに気づく 
がんばれば解けそうな気分になる

写経が終わったので境界値やばやばだなあとなりながらマージ関数を書く 
[c,d]の区間にある点の数を数えたい気持ちになるので二人に投げる
std::mergeがわからなくてreferenceを見るなどする
チームメイトを信じてそのまま実装する 
通ってくれ〜〜〜っていいながら投げたら一発で通った AC(3:52)

あと一完してえなあとなる 時間的にもかなりギリギリでGの実装をする
さっき書いてもらったDのPoint周りをコピペする

最初は座標変換しようと思っていたので逆行列の計算を二人に投げる
時間がなくてサボりたくなったので座標変換を諦めて100*100くらい探索することにする
Lから三角形を確定できたのであとは面を求めるだけになる 時間がなくて焦って混乱する
まあサンプルが合ったので出す WA 冷える

時間がないのでassertで前半部分を確かめる WA 間違っているのが後半部分だとわかる

10分を切った どこが間違っているんだ とりあえず面の情報を出力してみる バグってるやんけ!
やばいやばいと言いながら見る charとcharの足し算を見つける クソクソクソ WA

もう5分もない いつもだったら諦めてたかもなんだけどなんか不思議と冴えていた
とりあえず怪しいところを全部書き換える "A" + s[0]を"A"+string(1,s[0])にしたら直る
遠い記憶が呼び覚まされる "A"はconst char *でs[0]はcharなので返り値がcharになってるやんけ!!

残り一分切っている中震える手でコードを直す 出力が直る デバッグ出力を消す 出す AC(4:58)

アツい ラストACだった

// ---------------------------
// ここまでコンテスト
// ---------------------------

コンテスト終了してらてさんが来たのでとりあえず煽る。
Fで僕がはまりかけてうくさんに指摘してもらった部分でハマっててつらそう

C、Fでそれぞれ1WA、Gで5WAも生やしてしまったのでペナルティ的に
6完最下位かなあと思っていたけど意外にそうでもなかった。速解きは大事。

8位で名前を呼ばれた。やったぜ。

メロンパン食べたいんやがと思いながら解説とスポンサー挨拶を聞いた。
食事のためのインターバルが短すぎるやろ

なんかWFは微妙だねという雰囲気で悔しさとでも手をつけた問題は通してたので
どうすればよかったんだろうみたいな気持ちになる 完数を増やせるようにしような

WA投げでニコニコ君をもらった 僕は2つしか入らなくてうくさんに煽られた
その後うくさんが0完していてプロ意識を感じた 見習っていきたい
823(はやぶさ)賞と82(やふー)賞をもらった うれしい

ご飯食べたりクイズやったりしてた IBMのTシャツ欲しかったんだけどコミュ障を発揮してしまった

帰ってきたコネクションハントで海外チームから「Is the order rabbit?」と聞かれた
ごちうさは国境を越える シャロちゃんかわいい

Twitter ID をください」というのもあったので ukuku09と書いておいた

帰ってホテルでダラダラしてたら夜になったので寝た
うくさんとごちうさを見に行こうという話をした

【3日目】

TXが遅延してごちうさが見れなかった かなしいね
秋葉原でラーメンを食べる おいしかったのでまた行きたい 朝は閉まってるけど

参加記を書く 参加記を書くまでがICPCアジア地区予選ですよ!!

【全体】