もくじ

TopCoderの導入

しめじたんの記事を読めば良い。 登録は20分位かかった。遅いほうかも。

ログインできたら左上のO(n)のアイコンをくりっく、ポップアップのlaunch Arena的なアイコンをくりっく。

なにやら(ContestAppletProd.jnlp)ダウンロードされるので、クイック起動に登録しておく。

C++の導入

僕はc++コンパイラすらなかったのでそこからスタート。
cygwinをインストールすればOKhttp://i-love-windows.blog.so-net.ne.jp/2010-02-01
ってISerならUbuntuですよね~

C++については、下の記事を参照
y3eadgbeによるSTLの記事

C++でハマったこと

SRM実際の流れ

問題を解く流れ

enecre/topcoder.jpg

小技など

しめじたんの記事にある、プラグインを導入している前提です
プラグインでテンプレートを自動挿入する。

参考テンプレート

   1 #include <string>
   2 
   3 #include <algorithm>
   4 
   5 #include <cfloat>
   6 
   7 #include <climits>
   8 
   9 #include <cmath>
  10 
  11 #include <complex>
  12 
  13 #include <cstdio>
  14 
  15 #include <cstdlib>
  16 
  17 #include <cstring>
  18 
  19 #include <functional>
  20 
  21 #include <iostream>
  22 
  23 #include <map>
  24 
  25 #include <memory>
  26 
  27 #include <queue>
  28 
  29 #include <set>
  30 
  31 #include <sstream>
  32 
  33 #include <stack>
  34 
  35 #include <utility>
  36 
  37 #include <vector>
  38 
  39 
  40 
  41 
  42 
  43 using namespace std;
  44 
  45 
  46 
  47 inline int toInt(string s) {int v; istringstream sin(s);sin>>v;return v;}
  48 
  49 
  50 
  51 typedef vector<int> vi;
  52 
  53 typedef vector<vi> vvi;
  54 
  55 typedef vector<string> vs;
  56 
  57 
  58 
  59 typedef long long ll;
  60 
  61 typedef unsigned long long ull;
  62 
  63 
  64 
  65 
  66 
  67 #define EXIST(v,e) (find((v).begin(), (v).end(), (e)) != (v).end())
  68 
  69 #define SORT(v) (sort((v).begin(), (v).end()))
  70 
  71 #define RSORT(v) (sort((v).rbegin(), (v).rend()))
  72 
  73 #define PB push_back
  74 
  75 #define SZ(a) (int((a).size()))
  76 
  77 #define FOR(i,a,b) for(int i=(a);i<(b);++i)
  78 
  79 #define REP(i,n) FOR(i,0,n)
  80 
  81 #define TAG(i,v) REP(i,SZ(v))
  82 
  83 #define trace(x)  cerr << #x << " = " << (x) << endl
  84 
  85 #define tracev(x) cerr << #x << " = "; TAG(i, x) { cerr << x[i] << ","; } cerr << endl
  86 
  87 
  88 
  89 const int inf = 1 << 27;
  90 
  91 
  92 
  93 class $CLASSNAME$ {
  94 
  95 public:
  96 
  97         $RC$ $METHODNAME$( $METHODPARMS$ ) {
  98 
  99                 $RC$ res;
 100 
 101                 
 102 
 103                 return res;
 104 
 105         }
 106 
 107 
 108 
 109         $TESTCODE$
 110 
 111 };
 112 
 113 
 114 
 115 
 116 
 117 $BEGINCUT$
 118 
 119 int main(void) {
 120 
 121         $CLASSNAME$ ___test;
 122 
 123         ___test.run_test( -1 ); 
 124 
 125 }
 126 
 127 $ENDCUT$

参考シェルスクリプト(コンパイル&実行)
以下の内容のファイル(仮にtmakeとする)をchmod 774して、パスの通ってるところに置くと、tmake一発でよくなる。ただしディレクトリに.cppが2つ以上あってはいけないので、解いたEasyを別のディレクトリに逃がす必要がある。

g++ -O2 -Wall *.cpp -o a
./a

printデバッグ時、テストケース5がでか過ぎて出力おおすぎ


Categoryノート

fujima/topcoderメモ (最終更新日時 2011-07-13 23:47:08 更新者 fujima)