SRM446 Div2 詳細
250
n以下でlowerBound桁からupperBound桁までの正の整数の個数を求める。苦手なジャンルだが、たかが250なので
223.49
500
展開してしまえば単純な繰り返しだけ。
414.11
1000
ハノイの塔っぽいけどディスクが3種類だけで、重ねる順番に制限なし。それぞれ別々のpegに移動させる。少なくともJavaだとBFSでは遅すぎて無理。A*を使ったがHeuristicsを正しく設定できずアウト。
Failed System Test
終了後に正しく動くやつもちゃんと作りました。一番遅いTestCase58で348 ms.
Challengeで見逃したもの
int c=0; while(Integer.toString(c).length() < lowerbound ) c++;
0が入ってしまう。あとTLEにできそう。
if(b==1) bInt = 0; if(b==2) bInt = 10; if(b==3) bInt = 100;
0が入ってしまう。
u = (u+dx[w]+3) % 3; v = (u+dy[w]+3) % 3;
タイポ。
String[] cube1 = {"RED","GREEN","RED"}; String[] cube2 = {"GREEN","BLUE","GREEN"}; String[][] cube ={cube1,cube2,cube1};
BとGが逆。
よく見ていればこんなに落とせたのか。
結果
1000以外はスピード勝負だったので、687.6 で28位。レートが、1181 -> 1284 で、次回からDiv1に返り咲き。Div2はゆとり。