ABC037-D問題による過去との実力比較

今年ももうすぐ終わります。今年一年楽しかった思い出(PCK)も忘れたい思い出(procon,JOI)もいろいろできました。1年を通してとても競プロ的に充実していたと思います。

ということで、自分の競技プログラミング力が今年1年でどの程度上昇したのか確認してみることにしました。

f:id:nasatame:20161228215159j:plain

まだ薄青というとても誇れたものではないレートですが、確実に今年の7月からみると上昇しています。

次にコードによる比較を行ってみることにしました。
これは5月27日に解いた。
abc037.contest.atcoder.jp
のコードです。


改めてみるとメモ化再帰しているのは分かりますが、正直なにやってるのかわからないぐらいひどいコードです。メモリも93MBも消費しています。

これは12月28日(今)解いてみたD問題のコードです。かなりスマート(解法どおり)なコードです。メモリ消費は16MBほどです、なんと1/5ほどになりました。実行時間も797msから576msと200msほども短くなっています。あんまり差がないきがしますね。

最近はAtCoder以外にもCodeForcesなどに参加するようになりましたがぜんぜん駄目です。今年はいろいろ失敗することが多い年でした。でもそれはいろいろ挑戦するようになったから失敗も多くしてしまったのだと思います。これからも成長を止めないように頑張っていこうと思います。

来年は、AtCoderで青くできたら黄色くなりたいです。最後に、おそらさん、yumechiさん今年一年本当にありがとう。いろんなところでお世話になりました。大好きです。この場を借りて述べさせていただきます。

駄文を最後までお読みいただきありがとうございます。

JOI2016/2017予選参加記 JOI予選落ちた勢の戯言

 

2016年12月11日に行われたJOI2016/2017予選に参加しました。
 
結果は、残念なことに240点で本選に出場することができませんでした。
予選敗退の理由は、提出ミスです。
負け惜しみのようですが、解答ファイルの提出順序を間違ったり。
コマンドプロンプトで実行した結果をテキストファイルにコピーする過程で改行コードを抜かしたりなど、つまらないミスで160点ほど落としてしまいました。
一応、結果はあっていたので(フォーマットを除く)とても悔しいかったです。(それも含めて実力なんだが、、、)
 
さて、このようなミスで点数を落とさないためにはどうしたらいいのか考えてみました。
 
そのなかで改行などフォーマットのミスを減らすために考えたのはバッチファイルを利用することです。
 
あるディレクトリがあるとします。その中に、
・実行ファイル.exe(例ではjoi.exeとする)
・入力ファイル.txt(例ではin.txtとする)
があるとこんなコマンドを使用することが出来ます。
 
コマンドプロンプトを立ち上げて。そのディレクトリに移動して。
type in.txt | joi.exe >> out.txt
と打つと。
in.txtの中身がjoi.exeに入力されてその結果がout.txtに出力されます。
 
それを踏まえてこのようなbatファイルを作ってみました。
 

 

実行結果です。f:id:nasatame:20161216222107p:plain

 
使い方は、最初にexeファイルをコマンドプロンプトにドロップして、その後にスペース区切りで入力ファイルをドロップするだけです。このようにします
joib.bat joi.exe in.txt in.txt in.txt in.txt in.txt
少しバッチファイルに手を加えればバッチファイル実行後随時入力ファイルをドロップするように出来たりいろいろできます。
 
二つ目に考えたのが、1,2,3,4,5とファイルを提出するところで5,4,3,2,1などと提出するようなミスを減らす方法ですが。
これは考えてもどうしようも出来ませんでした。
あえてあげるなら一度全部提出した後ダウンロードしてみて確認するぐらい。
まあそんなミスするやつはいないでしょう()。
 
今回見事予選落ちという結果になったJOIですが、考えてみれば前からほしかった基本情報技術者などの資格にチャレンジするための時間が手に入ったと考えればそれほど悪くはなかったです。
 
このような戯言、JOI予選で落ちた腹いせに書いた文章に最後までお付き合いいただき本当にありがとうございます。
(実はみんなやってるテクだったりしたら悲しいです、あと参加記とか書いててまったく予選問題の解説しないでごめんなさい)