Hatena::Grouptopcoder

練習帳

 TopCoder(delta2323) / Codeforces(delta) / twitter

2011-04-01

[][] Problem Parser Contest? 01:46 はてなブックマーク -  Problem Parser Contest? - 練習帳

Codeforces で Problem Parser Contest なるものが始まっています.

 no title

コンテストで過去に出題した問題のアーカイブを作るときに行う作業が面倒だから,コンテスト形式にしてみんなにいいスクリプトを作ってもらおうという計画らしいです.

様々な面で通常のコンテストとは異なります.

  • マラソン形式
    • コンテスト終了は4月15日,それまでに何度もサブミットでき,最後のサブミットだけが有効
  • 賞金が出る
    • 1 位は280ドル:2万3千円くらい
  • 優秀作品は実際のシステムで使われるかも

プログラミング面での重要な点は以下の所でしょうか

  • 言語は Java 6 だけ
  • メモリ制限が厳しい
    • ヒープサイズが32M,スタックサイズが1M
    • 普段のコンテストは 256MB 程度が多い.

パーズの練習に参加すると良いのかな,ただ,Javaはあまりあつかった事がないから一人Unknown Language Contest状態になりそうです.

2010-01-03

[] 2進数表示したときの1の数を数えるアルゴリズム 09:49 はてなブックマーク -  2進数表示したときの1の数を数えるアルゴリズム - 練習帳

Miminoさんのソース

int ones(int n){
	int res=0;
	while(n){n-=-n&n;++res;}
	return res;
}

・-n&nで、nを2進数表現したとき、下の位から数えて最初にある1のみが残り他が0になる。それをnから引けば一番位の小さい1を0に出来る。

pieguyさんのソース

int card(int a){
	if(a==) return 0;
	return (a&1)+card(a>>1);
}

・再帰は直感的な感じがせず、うまく使えない。

・x/=2とx>>1ではどっちが速い?

[] 15 Exercises for Learning a new Programming Language 09:00 はてなブックマーク -  15 Exercises for Learning a new Programming Language - 練習帳

http://www.freelancingjob.com/articles/article_description.php?art_id=96

2009-12-19

[] endl,stringstream 07:32 はてなブックマーク -  endl,stringstream - 練習帳

・coutだと、「endl」か「flush」を使用した時点で、画面に出力され内部のバッファはクリアされる。したがって、その後、coutを使用してもそれまでの文字列が一緒に出てくることない。しかし、stringstreamは内容を出力しても、バッファはクリアされない。

・これを回避するには、なんらかの方法でss内のバッファをクリアしなければいけない。それが、

ss.str("");

である。str()というメンバ関数は、引数に指定された文字列でss内のバッファを上書きする。つまり、空の文字列で上書きすることによって、バッファをクリアするのである。

http://ppwww.phys.sci.kobe-u.ac.jp/~akusumoto/program/detail.php?d=c/10-other/sstream_trapより)

2009-12-10

[] n進数→10進数変換 02:03 はてなブックマーク -  n進数→10進数変換 - 練習帳

charは単なる1バイトの変数だから演算ができるのか

int val(char c){
   if('0'<=c || c<= '9'){
        return c-'0';
   }else if('A'<=c||c<='J'){
        return c-'A'+10;
   }else
        return -1;
   }
}

・bool isalpha(int)やbool isdigit(int)という関数もある