うにゅーん、って感じだ

SRM highest:1910. C#を書きます.

コード祭り予選突破練習会をしました

しました。

atnd.org

9/30(土) にやりました。思ったより予選B が近く、慌てて開催 3日前くらいに大枠を固めて参加者を募集したのですが、結果15人もの人に集まっていただき、とても嬉しかったです!

昨年も同じような練習会を行った のですが、昨年との一番の違いは「学外の人も参加できるように貸しスペースを借りて開催した」というところで、実際に人が集まらないととても悲しいことになっていたと思うので本当に感謝です。
(これは他の大学の人からすると意外かもしれませんが、うちの大学は競プロ関連活動がそこまで盛んでなく、練習会などが盛んに行われている他の大学の方々が羨ましいなぁという感じ。今回貸しスペースを借りたのも、学内だけだと全然人が集まらなさそうだと思ったからというのがあります。)


前日

昼 〜 夜


バチャコンの問題セットが決まっていないがライブを見に行く

深夜 1時半ごろ 〜


多い


こんなことをしている場合ではない


使おうと思っていた問題が試しに投げて見たら IE になり悲しむ(ちなみにこの問題でした https://beta.atcoder.jp/contests/autumn_fest/tasks/autumn_fest_06


4時前にようやく完成


結局 11問 3時間になりました


当日


アナウンス


会場がわりとあっとこ本社に近い(新宿御苑はさんで反対側くらい)


スポンサー 欲しい!!!(5000兆円のフォントで)


到着

思ったより会場がちゃんとしていてよかった。

当初の予定より 10分遅れで開始


1時間20分ほどで全ての問題に AC がつく


やはり 2時間40分だと短かったらしく、オンサイトに聞いて 20分延長


2時間半ほどでこばさんが全完!


コンテスト、こんな感じになりました
https://not-522.appspot.com/contest/6671465998974976


コンテスト終了後、適当な解説をしたのち簡単な懇親会をしました。

www.slideshare.net



解いてね


以下、適当なツイ






このお二方とは、次の日の KUPC でもたくさんお話しできました🙌



練習会、やっぱりオンサイトめっちゃ楽しいので色んな人にどんどん開いて欲しい〜!

JAG夏合宿2017(+コード祭り2017予選A)参加記

9/22-24 に、JAG の夏合宿(http://acm-icpc.aitea.net/index.php?2017%2FPractice%2F%E5%A4%8F%E5%90%88%E5%AE%BF%2F%E6%A1%88%E5%86%85)に行ってきました。
今年初めて icpc アジア地区への切符を手にしたので、夏合宿は初参加!

宿泊部屋が足らないという話だったので、毎日お家に帰りました(ただ思ったよりオリセンが家から遠く、片道1時間かかったので宿泊したほうが良かったかもしれない)。


今回、チームメイトの一人は学会か何かが被ってしまったので、kurukuru-sushi からは りあん@rian_tkb)と 葦(@Ashurnasirpal)が参加し、毎日一人チームに迎え入れる形でコンテストに出場しました。

1日目

1日目はすぬけさんのセット(Japan Alumni Group Summer Camp 2017 Day 1 - AtCoder


この日のチームメイトはすみけんさん(実は高校の一つ上の先輩だったことがコンテスト中に発覚しびっくりした)。


Macbook Air に リアフォ を刺しているという謎環境なので、コンテスト前に簡単な操作方法のレクチャーをする(これは結局 3日間ともした)。

コンテスト中の流れ

(記憶が薄れてきているので細部が違っているかもしれないですがご容赦)


コンテスト開始。問題が1セットしかなくホチキスどめされていたのでまずはホチキスを丁寧に外し、問題を机にばらまく。

自分が最初に手に取ったのは E で、問題文の上部に BNF が見えたので問題概要を全く読まずに 3秒で葦くんに投げる(kurukuru-sushi では構文解析問題は全て葦くんに投げるという戦略を取っている)。

次に D を読むと、これは簡単な算数。早速コードを書き始める。途中少し詰まった(直角でないところを直角だと勘違いしていた)ところですみけんさんが J を一瞬で通す。その間に自分もミスに気づき、続けて D も AC。

次は多分 K に取り掛かっていたと思う。問題文を読んでこれはどうせ C_i - G_i でソートしてほいするやつでしょ、とか言いつつ書く。マイナスがついたりつかなかったり、どっちがおっきいとどうなる(自分は通す直前までコストとゲインを逆だと思っていた)とかがややこしいのでそこらへんを色々試すが、どうしてもサンプル1 とサンプル2 が同時にうまくいくようなことがない。そうこうしているうちにすみけんさんが A をいけそうとのことだったので書いてもらう。

K はこれ以上考えるとドツボにはまりそう(というか既にはまっている)なので、ここで葦くんに投げた E の様子を見にいく。問題を読むにそこまでつらそうな問題には見えず、スカラーは要素数1 のベクトルじゃない? と言ったらなんか解決したらしい。

その間にすみけんさんが一人で A を通し、葦くんに E を書いてもらう。手の空いたすみけんさんに K を投げ、その間に自分は H を考える。制約がクソでかいので、明らかにうまい方法があるやつ。こういう問題はまず条件を緩めた問題から考えると良い ので同じ動きを連続でしてよい場合を考えると、3つのうち高々2つの動きしか使わないことが判明。ということは交互にやっていって片方だけ残ってしまったらくるっと回る動作を間に挟めばよい、とわかる(よく考えるとこれが最短ムーブになる証明をしていない)。

ちょうどその頃 K のサンプルを手で試していただいていたすみけんさんにより、C_i + G_i でソートしてほいだということが判明。そこで自分が C と G を逆と勘違いしていたことも判明。

そのあと順位表を見て F が通されているように感じたので F を解けそうな目で見る。するとぱっと見ごつかった問題が実は自分より後での各文字の最初の登場位置と、自分より前での各文字の最後の登場位置がわかれば解けることがわかり、かつそれは普通に各文字から前後に伸ばしていけば間に合うので、途端に解ける問題に大変身した。

そのあたりで葦くんが E を通し、続けて自分が H, K, F と AC。E が通ってから F が通るまで 30 分かかっていない。

残る問題は 4 問で、正直人間に解ける問題が残っていなさそうに見える。

残り40分くらいで、葦くんが G が最小費用流になりそうだと気がつき、自分がライブラリの写経を始める(G をぱっと見フローと気づけなかったのはとても反省…)。写経をしている間に 2人の考察によりじわじわと解法がまとまり、コードを書くが、実装が重くしかも若干バグらせたため時間切れ、とても悔しい(でも結局その後書き上げても通らなかった)。


結果は 7完 7位。上にはガチプロしかいないので人類トップ、ってことでまぁ僥倖かなぁという気持ち。



普通に疲れていたのでそそくさと帰宅してしまった…。


2日目

2日目はこどふぉのgym(http://codeforces.com/gym/100633/


この日のチームメイトはあるごんさん。あるごんさんを kurukuru していく。

コンテスト

(あまり覚えていないし疲れてきたのでここは適当です)

全体的に readforces だった。

最初に L を読んでいけそうに思ったが、誤読したのとまぁまぁバグらせて(無駄に O(N) で解いていた)結局 5WA。冷え冷え〜。

あとは B が簡単な DP だったのでささっと実装したり(Mod が 10億9 でキレた)、G の forward というのが時計回りか反時計かわからずあるごんさんに読んでもらい、そのまま解法を伝えて書いてもらったり、葦くんが H の問題文読解に成功して AC したり、I をわかんねぇなぁ〜、と言いながら貪欲を書いて AC したりしました。


結果 5完で、オンサイト 6位かな? 全体的にキツすぎるセットだった…。


この日は Hec さんとけっこう話をしていた気がする。ABC-D じゃない 400 は怖いよね、という話もした気もする。


コード祭り予選まで少し時間があったので新宿で弐寺をしてから帰った。SP六段です。


コード祭り予選A

その日は予選A がありました(CODE FESTIVAL 2017 qual A - AtCoder

ボーダー予想として、本戦ボーダーは4完早解き、ありがとう祭りのボーダーも4完になるかなぁ、と踏んでいたので、D から開くことを決意。すぎむさんの 700 なので AND Grid のような思いつき構築ゲーが出るかもと予想していたので、死ぬ気で解きにかかるぞという強い意志。


結果、D をうまく思いつけて運良く 27分ほどで通せて、最後に A で 1RE(文字の長さが 4未満の場合に死んでいた)したものの全体 75位、日本人 19位という成績でした。勝ったなガハハ!

d が 2 より大きい偶数のときに各色が大きな正方形を描いていることに、ツイートする用の図を書いているときに気づいた(ア)

D はもちろんつらかったけど他の問題も普通につらくてつらいセットだなぁとなった。


2回目のパフォ 2800 超えによりレートもそこそこ上がった。嬉しい。

3日目

3日目は JAG のセット(Japan Alumni Group Summer Camp 2017 Day 3 - AtCoder


この日のチームメイトはめるさん。めるさんを kurukuru していく。

コンテスト中の流れ

めるさんが A を読んですぐ AC。葦くんが B を読み、実装に入る。自分は C の読解に苦しむ(グリッドに整数が記入されている的な設定でもよかったのでは?)。

葦くんが苦しみながらも B を通し、自分も苦しみながら C を通す(上から下じゃなくて左上から右下に斜めに埋めていってしまったので実装がクソつらかった)。

D はC に苦しみつつも問題概要を聞いていて、さすがに bitDP だろうという気持ちになる。ぱっと見 {O(2^{2N})} っぽいが部分集合の部分集合はもうちょいオーダーが落ちそうに感じ、この方針で行こうと考える。
あいこじゃない遷移は簡単だが、あいこになる確率がとてもつらい。ただ、うまくベン図を書いて考えると {O(N)} で求まり、勝利。AC。

そうこうしているうちに葦くんが F の考察をまとめる。プロ。そのまま葦くんが書いて AC。

E については、自分が + で区切ればいいというのを思いつくが、そのまま区間DPしても 2500^3 になりダメ。すると葦くんが解法を閃いてくれる。プロ。それは自分が実装を行い、AC。実装はめるさんに投げてしまってもよかったかもしれないなぁ。

あとは G を考えていたが、きっと解法は枝刈りではないだろう…、と思ってしまっていたので、相性が悪いと思いつつもフローを考えたりしていて、結局そのまま終わってしまった。6問解いた時点でもう少し時間が残っていたら枝刈ろうと思えていたかもしれないが、まぁ致し方なし。

あと、G をほぼ諦めていた段階で D の計算量を計算したらやはり部分集合の部分集合は {3^{N}} 個で、{O(N \ 3^{N})} になっていた(大学受験数学が得意)。



結果 6完で、オンサイト 7位? 2日目と同じくらいキツいセットだった…。


まとめ

競プロづくしでとても楽しい3日間でした!
コンテストの内容については、さすがにこれは通せなきゃダメだったなぁ…、みたいなのはほとんど無かったような気がしたのでまぁ悪く無かったと思います。ただ、どの日も半分以上の問題の実装を担当したので、もう少し配ればよかったかもなぁとは思いました(自分はそこまで実装の速い方ではない)。

国内予選突破という目標を達成してしまったので来年の ICPC はコーチとして出ようかなぁとか思っていたのですが、やっぱりチーム戦たのしすぎなので来年も選手として出ているかもしれません。まだわかりません。



懇親会的なものがなかったり帰宅勢だったりしたので、あまり交流ができなかったのが少し心残り……。
次は KUPC 東京オンサイトにいく予定です!



ACM-ICPC 2017国内予選 参加記

半年ぶりのブログ更新ですね。
本当はこの記事の前に、この前 SnackDown2017 というやつでインドに行った、という記事を書かなければならないのですがちょっと色々忙しかったのでそのうち書きます。

あらすじ

icpc たいてっく予選は毎年熾烈(しれつ)を極めていた。謎の組織 FCCPC 、†赤きもの†へと進化した後輩、大魔王 yosupot ...。
ただ、そんなたいてっくにも希望はあった。謎の組織 FCCPC は謎すぎたため消滅、大魔王 yosupot は力を溜めるための眠りについた。
今こそたいてっく予選に打ち克つべき! †赤きもの†へと進化した後輩の次の1枠を狙い立ち上がったチーム「kurukuru-sushi」の前に立ちはだかったのは、チーム「IQ1」だった…。

登場人物

チーム「kurukuru-sushi」

rian_tkbりあん), Ashurnasirpal(葦), monman53(もんまん)からなるチーム
http://icpc2017.yamagula.ic.i.u-tokyo.ac.jp/team/1308

チーム「IQ1」

吹雪, 睦月, 夕立 からなるとてもバランスの良いチーム
http://icpc2017.yamagula.ic.i.u-tokyo.ac.jp/team/1142

チーム「ninjaribaton

nari, baton, ninja からなるガチプロ後輩チーム
http://icpc2017.yamagula.ic.i.u-tokyo.ac.jp/team/1327

ティッピーぬいぐるみ

チーム「kurukuru-sushi」の机の上に鎮座するぬいぐるみ


国内予選前日 (7/13)

たいてっく予選突破が絶望的だった一昨年、去年とは異なり、たいてっく予選突破が現実味を帯びている今年のicpc国内予選。……というより、今年の出場選手のうち†赤きもの†へと進化した後輩の次にレートが高いのが自分で[要出典]、さすがにたいてっく予選突破できないと人権がない、という状況になり今までにないプレッシャーに追われる rian_tkb。

血迷った rian_tkb は、秋葉原に赴き25000円のキーボードとリストレストを購入する。

(今思うと、ここまでして突破できてなかったら本当にやばかった)

国内予選当日 (7/14)

コンテスト前

今期の授業は全て切ったのでリハーサルが終わるまでに大学に着けばいいのだが、家にいても落ち着かないので早めに家を出る。


ラボに置いてあった蟻本を持ち、蟻本に書いていない平衡二分探索木と、あとは AtCoder の提出のうち特に苦手なものの提出コードを印刷して会場に向かう。


チームメイトが皆蟻本を持ってきていたので積み上がる。

リハーサルも3問通して暇なので遊ぶ(上の kurukuru-tippy もこのとき撮影)。

この後、もんまんくんが M問題を頑張って通していた。

コンテスト中

最速で印刷ジョブを飛ばしたつもりがプリンターがトナー切れで、少しタイムロス。
その間に A問題を読む。
……ん? これは恐ろしいほどに簡単だぞ???
横からめっちゃ口を挟みながらもんまんくんにコーディングしてもらい、そのまま AC。ここまで 5min。

葦くんが B を読んでいたので見ると、構文解析
問題文がよくわからなかったのでよくよく読むと、ダブルクォーテーションで split して偶奇を気にしつつぐっ、とやるだけ。
しかし、A が通ってしまい PC を空いた状態にしたくないという焦りから見切り発車してしまい、少しめんどい実装になってしまった。
ただそこまでバグらせずに通してくれたのでよかった(とは言ってもやはり時間はかかってしまった)。ここまで 30min。

葦くんが B 問題と格闘している間に C 問題を手に取ると、h, w <= 10 なのが不思議なレベルで簡単な問題。
本当にやるだけにしか見えない。
もんまんくんに解法を伝えつつ紙コーディングをしてもらう(もちろんこれにもめっちゃ口を挟む)。
葦くんが B を通したらそのまま C を実装してもらい、AC。ここまで 40min。

ここで順位表を見る。
結構いい感じに進んでいたと思っていたので IQ1 に時間ペナルティでとても大きく離されていてとてもビックリする。
この様子だと正答数で上回らないと IQ1 に勝てないぞ……。

ここで自明問題が尽きる。
自分はすでにちょっとテンパっていたので、葦くんに D の問題文の要約を頼む(正確には問題概要はほぼ入っていたが、D に入る問題に見えなかった(=普通に解ける気がしなかった)ので誤読が怖くて読んでもらうことにした)。
どう考えても n * m <= 500 が重要な制約だが、よくわからない。
葦くんから整理された問題概要を聞くが、まだわからない。
ただ、こういうのは大抵 n = m あたりが重要なので、紙に 20 * 25 = 500 という式を書く
→ あ、これいけるのでは???
PC が空いていた焦燥感もあり、とりあえず書き始める。
途中少しテンパるが、大きなバグもなく実装した……はずが、答えが合わない。
よく見てみると、求めるものが作れるレシピの集合が何通りあるか、ではなくレシピの集合の要素数の最大値だった(ここは葦くんの誤読だったと思う)。
ただ、修正自体はすぐにでき、AC。ここまで 1h10min。

ここでまた順位表を見ると、また IQ1 との差が広がっている。これは本格的にヤバい……。
E は無理そうという話があったので、先に F を見る。明らかに考察ゲーの匂い。
無理そうと言われていた E も読むが、確かに無理そうだったので、F の考察をする。
とりあえず計算用紙に印をつけて実際に折ってみる。
左からの位置と上からの位置と左右どっちに折ったかがわかれば、次の状態が定式化できそうな状態にはなる、が、まだ考察が進まない。
もう少し考察をすると、上から何番目にあるか、というのは折り方と 1対1 に対応することがわかる。
あと、逆に折った状態から展開したとき、右に開いても左に開いても上から何番目かというのが変わらないことがわかった。
が、前からやっていくべきか、後ろからやっていくべきかがよくわからない。
両方からやって 2^30 はさすがに間に合わなさそう……。

ここでうだうだ言っていると、もんまんくんが考察の手助けをしてくれて、一気に解法へ結びついた


(折った状態から展開したとき、右に開いても左に開いても上から何番目かというのが変わらない、という自分の考察を完全に忘却していた)

ばばばっと書く。
1-origin なので境界条件とか +1 するか、とかがクソめんどい。
実際にバグる。
サンプルが合うようにコードをいじいじする。

そうこうしているうちに葦くんが G 問題がいけそうな雰囲気になったと言っていて、写経が必要なのでとりあえずコードを印刷して交代する。

コードを印刷して眺めていると、バグがすぐに見つかる。
また交代してもらってそこを直すとサンプルが通ったので、そのまま投げると AC。俺ってもしかして天才か??? ここまで 2h。

葦くんが G の写経をしている間、E を考えるが普通に無理そう。
H に関しても、4回まで調べればいいので探索範囲はすごく絞れそうだが絞り方がよくわからない。
なので、葦くんの G の解放に反例がないかどうかを調べる。

葦くんのコーディングが終わってサンプルを食わせるが、バグっている。
いくつかのしょうもないバグは潰し、見た目上はいい感じに動いているが、どうしても関節点列挙がバグっている……。写経はもんまんくんに適宜チェックしてもらっていたので問題ないはず……。
もう時間がなかったので一回バグったままで投げてみるが、当然 WA。
結局バグがどこかわからず、最後は順位表を見ながら終了。

最後の 2h59m59s で IQ1 が F を通していて、時間ペナルティ的に 1WA でも出していたら順位が逆転していたので、本当に危なかった。


結果、ABCDF の 5完 0WA早解きで 16 位でした! まぁ上々では
f:id:riantkb:20170715204109p:plain

Standings
http://icpc2017.yamagula.ic.i.u-tokyo.ac.jp/standings/

コンテスト後





打ち上げに行くが全然飲み足りないので、家で独り祝勝会

いま、めっちゃジンが入っています✌︎

あとがき

国内予選突破できて本当に良かった。
こんな日が来るのは本当に夢みたいで、大学入って競プロ始めて以来、一番嬉しいかもしれない。

それではみなさん、つくばで会いましょう!

三角形はいくつ? 雑記

これは
ひとり Advent Calendar 2016 - Adventar
の14日目の記事です。



アドベコン2016の12日目の問題を担当させていただきました。

www.adventar.org


問題はこちら
No.461 三角形はいくつ? - yukicoder


問題概要としてはパズル的なのでよくある、線をいっぱい引いた図形の中に三角形がいくつあるか数えるものです。




さて、解法としては、直線を3本取ってきたときにその3本で三角形が描けているか、を判定してあげればいいです。



判定方法についてですが、まず3本が1点で交わるとダメです。また、3本の互いの交点のうち一つでも最初の大きな三角形の外側にある場合、3本は最初の大きな三角形の中のみ伸びてる線分なのでこれも三角形となることができません(日本語が下手)。


実は、この2点をクリアすればその3本は必ず三角形を描けています。



次はこれを実際にどう判定するかですが、
{\displaystyle q_i = \frac{b_i}{a_i + b_i}}
という値に注目すると、
前者は3本の {q_i} の和が1であるかどうか、後者は3本のうち任意の2本に対して {q_i} の和が1より大きいかどうか、にそれぞれ対応しています。
(これはもちろん {\displaystyle \frac{a_i}{a_i + b_i}} という値に注目してもほぼ同じように解けます)


この判定を全組み合わせに対して調べれば、とりあえず {O(N^3)} で解けます。ただ、2本を確定させたとき、もう1本に対して3本の {q_i} の和が1になる線分があるかどうかと、任意の2本の {q_i} の和が1以下のものがいくつあるか、というのは {q_i} の値でソートしておけば両方 {O( \log N)} で解け、結果 {O(N^2 \log N)} となります。

(うまくしゃくとりとかすると {O(N^2)} になります)





これは最初 {O(N^3)} が通る制約で★2で出す予定でした。ただ、アドベコンの周囲の問題の難易度を眺めているとどうも★2が多そうだったので(ただこれは罠でその後みんな★3に昇格した{O(N^2 \log N)} に制約を変えて、ついでに誤差を {10^{-16}} 程度まで小さくして分数で足したりソートしたりしてもらうようにしたりとか、{N = 4000} にしてオーバーフローを誘ったりしました。


ただいくつか誤算があって、まず、long double は仮数部が 63bit あるので、long long の範囲では誤差が出ない、ということ。これは出題前に気づいていました。本当は浮動小数点数を使った解答を全て誤差死させたかったのですがまぁ致し方なし。double がほぼ全て落ちるだけでも僥倖みたいなところがある(ちなみに C# には double より精度の高い浮動小数点数型が存在しないので分数解しか通らない、はず)。


次に、変に {N = 4000} とかいうギリギリを攻めたせいで TL が少し厳しくなってしまったこと。これは kimiyuki さんにテスターをしていただいた際に明るみになりました。まず、Python ではナチュラルな {O(N^2)} が TLE するらしくもうびっくりという感じなんですけどまぁこれは置いといて。問題は、分数クラスがちゃんとしていて毎回約分するようなものだと毎回 {\log} がかかって 5sec でも TLE することがあるらしくにゃーんという感じでした。

それと相反して {O(N^3)} が通っていたりもして、それは本当にびっくりなんですけど。というのも、オーバーフローをさせる関係で今回ちゃんと最大ケースを作っていて。しかもそれの答えが 23億 とかで。でも一つ一つ数え上げて 4sec ちょいで通っていて。もうC言語ってなんなんだよ、という感じ。

それと★4に昇格したのも誤算の一つで。おそらく {N = 4000} のせいで解法が {O(N^3)} の全探索から一つ {\log} に落として高速化、というプロセスを辿りづらかったのかも? 部分点というか部分ケースがあってまずそっちが通るかどうか試す、みたいな方針でいったらもう少し楽に解かれたのかも。そもそも {O(N^2 \log N)} が通る制約に見えなくてずっと {O(N \log^2 N)} 解を考えてた、とかがあったらめっちゃ申し訳ない。



でもまぁストックのクソ問が思ったよりいい感じな問題になった(ほんまか?)のでまぁよかったかなぁ。とは言ってもストックのクソ問の中でもまだマシなほうなので残りのストックは本当に日の目を見ることがないかも……。

3DSは持ってないです

これは
ひとり Advent Calendar 2016 - Adventar
の13日目の記事です。








干し芋は「欲しいものリスト」だからだそうです。

イカれたメンバーを紹介するぜ!

これは
ひとり Advent Calendar 2016 - Adventar
の12日目の記事です。



ところで3日間くらい空いちゃってますけどどうしましょうね。





イカれた誕生日プレゼントたちを紹介するぜ!



まずはキーホルダーたち! かわいいけどそろそろつける場所がなくなってきている!
f:id:riantkb:20161212133037j:plain



続いて面白そうなラノベ! 最近頭を空っぽにする物語しか摂取してなかったから少し不安!
f:id:riantkb:20161212134459j:plain
[スニーカー文庫公式サイト]ザ・スニーカーWEB



続いて Land of Lispオライリーじゃねぇか! Lisp 書く気、なし!
f:id:riantkb:20161212135044j:plain



続いて電源タップ! なんかとてつもなく便利なんだが???
f:id:riantkb:20161212135847j:plainf:id:riantkb:20161212135942j:plain
seihinbu.pos-tec.jp






(以下、アレなのでアレ)







続いて福袋とローション! 福袋の絵柄がかわいい。ところでなんでこの福袋、ゴムが入ってるんだ。
f:id:riantkb:20161212135501p:plain



続いて、ぽい?っぽい?いえーい(._.)ちゃっくだょ〜〜〜✌️(o_o) (中略) IQが1。
f:id:riantkb:20161212140947j:plain



続いてパンツ! 正直一番キツいぞ!!!
f:id:riantkb:20161212140439j:plain




おまけ

なんかamazonでセールやっててつい長財布を買ってしまったぜ!
f:id:riantkb:20161212141331j:plain




なんかまだ届いたりするらしいのでまた追記します。

ハルコン2016 参加記

これは
ひとり Advent Calendar 2016 - Adventar
の8日目の記事です。




カービィスマブラなどで有名なハル研究所が開催していたプロコンに参加していました。

www.hallab.co.jp


期間は11/7 ~ 11/25 で2週間以上あり、まぁいわゆるマラソンマッチです。
私がコードを書き始めたのは多分11日くらいなので、ちょうど2週間くらい参加していたことになります。



最後に順位表を見たときは6位だったので、再評価でいい値が出たり上がコケたりしてくれれば、賞金がワンチャンありうるかも…?



こちら、提出したコードにめっちゃコメントを書いたものです。読んで。

ハルコン2016でのrian_tkbのコード · GitHub

そのうち、自分の方針をまとめた解説記事みたいなのも書きたいと思ってます

(マラソンやったことないのでビームサーチとか焼きなましとか言葉しか知らないので、今回も盤面評価すらしていないので多分他の人とは方針が全然違いそう)



以下、期間中の関連ツイートを適当にまとめたもの


C++書けないマンとしてはな


誤差の処理とか、ちゃんとREADMEに書いておいてほしかった(コードを読解した)
C++書きたくないマンとしてはな
最初、1ターン目からビームが打てて、かつ次に打てるのがその40ターン後だと思っていた、けわしい
(実際には、最初にビームを撃てるのは40ターン目で、次に打てるのはその41ターン後)
ようやく主なバグが取れてまともなスコアが出る

普通のオンラインジャッジみたいに1ケースずつ動かし直してると思ったら1回で200ケースまとめて動かしてたでござる
探索の深さを増やすようにして2位まで更新
(この時期ですでにhirokazuさんは58000台を出してたのか…)
かっこいい…
2円の共通接線はめんどいので結局別の方法で解決しました
無限にバグが仕込まれているのでもうダメ
2位争いが熾烈になり、程なくして置いていかれる
これも地味につらかった
このツイートをしたら翌日には修正が降ってきてて、もしかして監視されてる!? ってなった

C++書けないマンとしてはな

めっちゃTLE

残り1日を切り、更新できず賞金ボーダーから置いていかれて焦る

残り1時間を切ったタイミングで、乱数で回数を回す方向にシフトしたら突如として6万を切り、なんやねんって言う
終了直後の方針ツイートとか色々