#procon28

第28回全国高専プログラミングコンテストに10/7~10/10まで山口県周南市に行ってきました

結果

競技部門 第5位 特別賞

戦略

多角形パズルにおいて頂点と頂点はかならず接するという条件のもとに、ある頂点と頂点がくっついたときの周りの辺と角のそれっぽさを評価して、ビームサーチで解こうとした。9月下旬頃にこれまでの傾向から90度角の多いピースがでるだろうと予想して、そのような問題を作るプログラムを後輩に書いてもらったら、案の定、局所解に陥ることが多かった。そのため 人力 を使ってどのピースが間違っておかれているかを人間の目で選択し、それを取り除いた上で再探索をするようにして、局所解を乗り切るようにした。

当日までの振り返り

4月課題が出たときは「またパズルですか...」とか思ってモチベが上がらず、まじめに開発をし始めたのは5月ごろ。

まず初めの関門である環境構築、今年は一昨年くらいからの伝統を引き継ぐべく LinuxでQtを使うことにして、それに加えてboost,spdlog,zbar,opencvを使った。今回新入生が多めに入部してくれたのでそれぞれに環境を用意しなければならなくてとりあえず、manjaro linuxをインストールしてもらってそこで開発をしてもらっていたわけなんだが、細かい環境の差異によるコンパイルエラーが結構起きて、それを治してあげたりとかしてかなり開発の効率が落ちてしまった。当たり前だけど、ArchLinuxの兄弟分のManjaroLinuxも遠慮なく最新のパッケージを降らしてくれるわけで、 pacman -Syu したらビルドが通らなくなったとか言われたりして笑えなかった。そんな中ArchLinuxArchiveを使えばいいやんとかいうことを思いついて、全員のPCにArchインストールバトルを敢行して、環境構築の闇は乗り切った。この手法ArchLinuxを使うところ以外には全く問題がないと思うので、ぜひ来年のプロコンの開発でも使ってほしい。

いつもの通り開発がつらいのは当たり前だが、今年は隣で"Bird Finder"(あの鳥の鳴き声の位置と種類を特定してHololensに表示するやつ)の開発をしており、絶えず鳥の声が大音量で部室に流されるとかいう非常に劣悪な環境で開発をしてたので余計につらかった。

そんなこんなで当日は魔材をきめてデスマしつつも、パズルを並べる力を維持するような睡眠をとって死ぬ気で開発をして、なんとか5位特別賞を取ってくることができた。多分5台だったか6台くらいを壇上に持ち込んですべてのPCを使って問題を解かせたってのがインパクトあったのかなとか思ってたり。

あ、2日目にあおみちゃんと名刺交換チャレンジに成功したんですよ。やったね。

食事部門

プロコンで食べた食事(外食のみ)を一通り紹介。

0日目 昼飯 徳山駅前の商店街の「ポパイ 喫茶店」

写真を撮り忘れてた()

0日目 夕食 徳山駅前の商店街のラーメン屋

f:id:acquamarine:20171202210603p:plain

1日目 夕食 ボンディ 下松店にて

f:id:acquamarine:20171202210835p:plain

2日目 夕食 国際交流会でどこかの中華料理屋さん

写真を撮り忘れる失態

3日目 昼飯 広島駅の駅ビルに入ってるお好み焼き屋さん

この写真もありませんでした

観光部門

高専プロコンといえば、観光。前回の伊勢大会では伊勢神宮に参拝したりできたわけだが、今年は徳山。徳山高専の知り合いに聞いても徳山は観光する場所なんてないらしく、今回は徳山から離れ広島の厳島神社へ行ってきた。

f:id:acquamarine:20171202210252p:plain

そこで凶を引くことができて、これはむしろ最高に運が良かった(?)のではとか思ってる。

f:id:acquamarine:20171202202259p:plain

まとめ

  • ArchLinuxArchiveを使った開発環境の統一は再現性があってすごく良いので使おう
  • おいしいものがたくさん食べれてよかった

これは SPC同好会 Advent Calendar 1日目の記事です。