2013年6月13日木曜日

筋トレ7日目: SRM564 Div1Easy "KnightCircuit2"

■時間
25分

■問題 SRM564 Div1 Easy "KnightCircuit2"
ボードの大きさw,hを渡された時、任意の初期位置から始めてチェスのナイトが自由に動いていった場合に行ける場所の最大数はなにか

■試した解き方
あるボードw,hで全部の場所に行ける場合、(w+1),hでもw,(h+1)でも必ず全部の場所に行けることに注目。(w,h>=2の場合だが、そもそも全部の場所に行けるのは(3,4)が最初なので関係ない)
なので小さいボードに関しては場合分けしてしまい、大きいボード((3,4)以上の)はw*hを返せばいい。

public int maxSize(int w, int h) {
if(w>h){
int t=h;
h=w;
w=t;
}
if(w==1)
return 1;
else if(w==2)
return (h+1)/2;
else if(w==3 && h==3)return 8;
return w*h;
}

1st submit:
OK

■Editorial
同じ解き方。

■反省
・なにこれ本当にdiv1?
・とはいいつつ、最初「(w,h)がcompleteなら(w+1,h)もcomplete」ということに気づかず、戸惑ってしまった。

■筋トレ記録
勝率63% (5/8)

0 件のコメント:

コメントを投稿