SRM456 div2

Tags:
  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目指してがんばる。