SRM456 div2
Tags: TopCoder
2009/12/23 13:05
働いてオールして働いて参戦。
もうへろへろだったけど、Redbullが俺に翼を授けた。
250 AppleWord
あっぽあっぽーするだけ。
小文字と大文字区別しないのを注意するくらいか。
218.92
500 SilverDistance
無限の広さの将棋盤で「銀」が動く。
最短距離を求める。
探索では無理ぽいのでちょっと考えた。
対角が最短で、ずれる場合だけ更にコストがかかる。
前方90度はコスト0でずれれて、左右90度はコスト1、後方90度はコスト2。
public int minSteps(int sx, int sy, int gx, int gy) {
final int x = gx - sx;
final int y = gy - sy;
int cost = Math.max(Math.abs(x),Math.abs(y));
if (Math.abs(x - y) % 2 == 1) {
if ((0 < x - y) && (0 > x+ y)) cost +=2;
else if ((0 < x - y) || (0 > x+ y)) cost++;
}
return cost;
}
SRM中にしては、すっきり書けた気がする。
229.93
1000 CutSticks
与えられたスティックを指定された回数だけ2つに均等に刻む。
降順ソートしたとき、K番目が最大長になるときの長さを返す。
基本的にK番目の後ろから刻む。
後ろがないときは一番長いのを刻む。後ろがわいたらそっちを刻む。
毎回ソートする。
みたいなんで解けそうと思った。けど、刻む回数が最大1billionとか
結局考えてるうちに、かけなくなった。
Challenge Phase
洗濯物干してたら時間やばいやばい。
250の大文字小文字で結構落ちてて、狙えばよかったと後悔。
500くらいしか狙えそうになかったので、Javaで点数近い人読む。
したら境界条件が若干自分と違う。
コスト1の範囲を考えてないぽい。でも、ケース作ってるうちに落とされたorz もたいない。
今日も頑張った。
448.85
122位で912(+93)
やっと緑ネーム。ちょっと抜け出した。
来年はDiv1目指してがんばる。
