練習会

日曜日は練習会。
ま・た、二人でした。
勝つ気はありますか?
去年の今頃はペアプログラミングに慣れてきて、
一人じゃうまいこと書けない、
てな感じになっていたのですが、
もう、最近はずっとペアプログラミングをやっていないので、
ペアプロて何か意味有るの?
ていうか、ひとりでも間違えないし。
…いやまぁ、そんな愚痴も出ますよ。


今回の問題セットはどこかで見たことあるようなセット。
9問中4問は解いたことのある問題でした。
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2049
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2050
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2051
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2052
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2053
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2054
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2055
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2056
http://acm.pku.cn/JudgeOnline/showproblem?problem_id=2057
でも、解いた四問はどれもアルゴリズムは自明な問題なので、
再実装することに意味は有ると思ったので、
結局それから解きました。


まず明らかに簡単な2051。これはさっと終わって、
次にいかにも簡単な2056。問題文を自分で読んでたりしたので
えらく時間がかかるもプログラム作るのはさっとおわって、
次は2049にとりかかる。
これもアルゴリズムは自明と言うか、ダイクストラするだけなので、
適当に書いて適当に終わる。
あまりにも適当に書いていたらM氏に、
本気出してへんやろ、とか言われる。
とにもかくにも、次は2050。これは完全に書くだけの問題。
しかも、推奨されるデータ構造まで教えてくれてる。
めちゃくちゃ親切な問題だ。
これもさっと書いてさっとおわる。


ここで、解いたことのある問題が終了。
どれをやるかといったところで、M氏が2057が簡単そうだ、
というので、2057を考えることに。
二人でうんうん考えていると、再帰的な計算式が見つかったので、
書いて送る。WA。
まさか、intでは間に合わない?
計算上は間に合うはずなんだけどな、
といいつつ、intをdoubleに変えて送信。
今度はランタイムエラー。
いよいよ良く分からなくなったので、
なぜかdouble をlong long に変えて送る。
またランタイムエラー。
うんうんうなっていると、
ツリーのルートの初期化が間違っていた。
なんというしょうもない間違いだ…。
これで通ってアクセプト。
というか、ローカルで何で落ちなかったのか?


次は2054とかを考えるも分からず。
そうこうしているうちにGNCが2053を解いたので、
うちもそれを考えることに。
問題文を読んでみると、こ、これはー。
http://www.gsic.titech.ac.jp/supercon/supercon2000/honsen.html
このとき散々考えたので知っているのですが、
正方形に対してはジョイントは二点以上追加する意味はなくて、
この蟹みたいな形が最小になる、ということが分かれば、後は書くだけ。
echizenチームには悪いけど、これはサービス問題だなぁ。
というわけで、書いて通す。


といったところで、あと30分。
再び2054を考える。
なかなか解法は思いつかず。
残り5分ぐらいになったときにいけそうな方法を思いつくも、
5分では無理だと思ったので、あきらめる。終了。


後一つぐらい解けても良かったような気もするけど、
ひとまず、悪くはないできたっだ。
コーディングもタイプミスが激しい以外は悪くはなかったし、
あとは四月までにどれぐらい練習ができるか。
しかしまぁ、とりあえず、今日から2月10日までは卒論に集中しよう…。