2010年から2012年までのプログラミングコンテストを振り返る
自分の実力がどれくらい向上しているのか自分でわからないので2011年5月から2012年12月16日までのコンテストについて時系列順に振り返ってみる。「参加人数」は0より大きい点数を取った人数を参加人数として扱い、「上位何%か」のところには(自分の順位)÷(参加人数)×100の小数第2位以下を切り捨てしたものとしている。
日付 | 時間 | コンテスト名 | スコア / 満点 | 順位 / 参加人数 | 上位何%か | |
2011年 05/14 | 5時間 | UTPC 2011 | 300 / 1200 | 120位 / 157人 | 76.4% | |
2011年 06/05 | 5時間 | UAPC 2011 | 3 / 12問 | 46位 / 156人 | 29.4% | |
2011年 08/06 | 5時間 | KUPC 2011 | 400 / 1000 | 48位 / 132人 | 36.3% | |
2011年 09/24 | 5時間 | UAPC 2011 summer | 1 / 10問 | 55位 / 72人 | 76.3% | |
2011年 10/15 | 4時間 | RUPC 2011 | 3 / 9問 | 57位 / 97人 | 58.7% | |
2011年 12/24 | 5時間 | Xmas Contest 2011 | 175 / 800 | 63位 / 92人 | 68.4% | |
2012年 03/03 | 4時間 | CTPC(一般) | 500 / 1100 | 30位 / 64人 | 46.8% | |
2012年 03/13 | 3時間 | RitsCamp Day1 | 4 / 7問 | 13位 / 53チーム | - | |
2012年 03/14 | 5時間 | RitsCamp Day2 | 2 / 12問 | 9位 / 17チーム | - | |
2012年 03/15 | 3時間 | RitsCamp Day3 | 1 / 6問 | 34位 / 37チーム | - | |
2012年 04/14 | 90分 | ARC #001 (鯖が落ちたので中止) | 300 / 400 | 4位 / 139人(参考記録) | - | |
2012年 05/02 | 90分 | ARC #002 | 300 / 400 | 89位 / 358人 | 24.8% | |
2012年 05/26 | 3時間 | ふか杯 | 300 / 700 | 22位 / 102人 | 21.5 % | |
2012年 05/27 | 90分 | ARC #003 | 200 / 400 | 113位 / 302人 | 37.4% | |
2012年 06/02 | 2時間 | WUPC 2012 | 430 / 600 | 47位 / 137人 | 34.3% | |
2012年 06/10 | 90分 | HBPC | 100 / 400 | 29 / 29 | 100% | |
2012年 06/16 | 90分 | ARC #004 | 100 / 400 | 198位 / 307人 | 64.4% | |
2012年 06/30 | 90分 | ARC #005 | 200 / 400 | 157位 / 261人 | 60.1% | |
2012年 07/01 | 5時間 | KUPC 2012 | 500 / 1200 | 102位 / 178人 | 57.3% | |
2012年 07/06 | 3時間 | ICPC国内予選 | 2 / 7問 | 69位 / 320チーム? | 21.5% | |
2012年 07/21 | 90分 | ARC #006 | 不参加 | - | - | - |
2012年 08/03 | 2時間 | 天下一予選A | 250 / 400 | 70位 / 245人 | 28.5% | |
2012年 08/18 | 2時間 | 天下一予選B | 180 / 400 | 73位 / 166人 | 43.9% | |
2012年 08/29 | 2時間 | 天下一予選C (携帯から参加) | 200 / 400 | 112位 / 168人 | 66.6% | |
2012年 09/03 | 3時間 | ACPC2012 Day1(携帯から参加) | 1 / 7問 | 33位 / 35チーム | 94.2% | |
2012年 09/05 | 3時間 | ACPC2012 Day3(携帯から参加) | 1 / 6問 | 22位 / 26チーム | 84.6% | |
2012年 09/08 | 90分 | ARC #007 | 200 / 400 | 142位 / 216人 | 65.7% | |
2012年 09/15 | 5時間 | JAGSummerCamp Day2 | 2 / 10問 | 27位 / 38チーム | 71.0% | |
2012年 09/16 | 3時間 | JAGSummerCamp Day3 A | 1 / 6問 | 27位 / 32チーム | 84.3% | |
2012年 09/16 | 3時間 | JAGSummerCamp Day3 B | 1 / 7問 | 35位 / 42チーム | 83.3% | |
2012年 09/17 | 5時間 | JAGSummerCamp Day4 | 0 / 10問 | - | - | |
2012年 09/22 | 90分 | ARC #008 | 250 / 400 | 48位 / 248人 | 19.3% | |
2012年 10/20 | 5時間 | ACPC2012Day2OL | 3 / 10問 | 24位 / 36位 | 66.6% | |
2012年 10/20 | 90分 | ARC #009 | 240 / 400 | 69位 / 278人 | 24.8% | |
2012年 10/21 | 5時間 | Autumn Fest 2012 | 100 / 1070 | 68位 / 99人 | 68.6% | |
2012年 11/04 | 5時間 | ICPC模擬地区予選 2012 | 1 / 10問 | 49位 / 49人 | 100% | |
2012年 11/18 | 5時間 | ICPCアジア地区予選 2012 | 1 / 10問 | 31位 / 34チーム | 91.1% | |
2012年 11/24 | 1時間 | DigitalArts PC | 200 / 300 | 55位 / 176人 | 31.2% | |
2012年 12/02 | 5時間 | UTPC 2012 | 355.22 / 2400 | 51位 / 171チーム | 29.8% | |
2012年 12/08 | 4時間 | WUPC 2nd | 260 / 800 | 71位 / 201 | 35.3% | |
2012年 12/16 | 90分 | ARC #010 | 210 / 400 | 47位 / 287人 | 16.3% |
- 初めてプログラミングコンテストに参加したのは2010年のICPC国内予選だが当時はAOJ・PKU・TopCoderの存在も知らず、ろくにプログラムも書けないレベルで0完だった。
- AOJの存在を知り、問題をちゃんと解き始めたのは2010年9月頃からで、実質のデビュー戦にあたるのはUTPC 2011(2011年5月)になる。
- 2011年の6月くらいにはやるだけ問題くらいは確実に解けるようになっていたが、BFSとDFSの使い分けがまだ上手にできないレベルで、典型的なDPやダイクストラすら書けないレベルだった。
- 2011年のICPC国内予選は入院していて不参加だった。参加していたとしても高々3問しか解けないレベルだったので確実に予選落ちしていたと思う。
- 自力で典型DPを書けるようになったのはRUPC 2011以降(2011年10月)で、このとき初めて実戦でDPが書けたので感激した記憶がある。
- 2012年3月の立命館合宿ではじめて競技プログラマの方々の存在を知った、周りのレベルが本当に高くて刺激を受けた。
- 2012年4月から新AtCoderがオープンし、ここからAtCoder Regular Contestを始めとしてコンテストラッシュがはじまった。
- 2012年6月くらいになると典型的なDFS, BFS, DP, ダイクストラくらいは書けるようになっていたはず。二分探索や構文解析はまだ書けないレベルだった
- 2012年のICPC国内予選はいろいろと失敗して2問しか解けなかったが不思議な力でアジア地区予選の出場権を得る。
- 2012年JAG Summer Campに参加して自分の実力は地区予選レベルの問題がぜんぜん解けないレベルであることを知る。合宿のコンテスト中は隣に妖精さんがいた。
- 合宿4日目は2010年ICPC国内予選ぶりの0完で、チームのみんなには申し訳ない感じだった。
- 合宿終了後は解けなかった問題を復習し、座標圧縮、二次元累積和、構文解析、二分探索、ローリングハッシュが自力で書け、かなり多くのことを覚えた。
- ICPCアジア地区予選は結局1問しか解けず明らかに自分の実力不足だった
- 今年のAtCoderでのコンテストは順位がいつも安定して50-70位であることが多く頭打ちになっている。さらに上を目指すにはより難しい問題を解けるようにならないといけない。
- 2012年で0完しそうで焦ったコンテストは「RitsCamp Day 3」「HBPC」「ACPC2012Day2OL」「Autumn Fest 2012」「ICPC模擬地区予選 2012」あたり。特に「HBPC」はコンテスト残り2分でsubmit→ACで、ぎりぎりすぎてコード書いているときに心臓止まりそうだった。
今後の課題
- AOJの問題だけでなく、PKU・SRM・Project Eulerあたりの問題も解いていきましょう
- ネットワークフロー系の問題も解けるようになりましょう
- 数値計算のアルゴリズムも覚えましょう
- 期待値DPなど確率などが絡む問題も解けるようになりましょう
- 数え上げ系の問題も解けるようになりましょう