2010年7月6日火曜日

TopCoder SRM 475

SRM 475 20:00~22:00

・RabbitStepping(DIV1 Easy)
何か難しそう
→fieldの長さが高々17なので愚直にシミュレーションしよう
→とりあえずサンプル1,2,3あたりは正解
→何かサンプル5が通らない
→終了条件が間違っているのかしら?
→ちまちまデバッグ
→まさかの終了あばばばば

以下略.

実のところ,うさぎの移動ルールは結構どうでもよかったようです.うさぎはステップ毎に必ず右か左に移動するので,初期値セルpにいたとして最終的にセル0,1のどちらにいるかというのは,(k+size-2)%2で調べられます(多分).で,セルに重なっているのが偶数匹なら結果的に0匹,奇数匹なら1匹.あとはこれを足すだけ.

今回学んだこと
nビットの整数でrビットが1であるものを生成するには,Integer.bitCountを使いましょう.
for(int i=0; i < i<<n; i++){
if(Integer.bitCount(i)==r){
// TODO
}
}
・Result
××× 0 0

・Rating
1276 -> 1233

DIV2がお迎えに来たようです….

0 件のコメント: