SRM444 div2
2009/09までにTopCoder Rate1200越えを目標にしました。
何か目標にしないとICPCのショックから立ち直れない・・・。
バイト終わりで眠くてしんどかったのですが、気合いでSRM出ました。
Problem 250 FourBlocksEasy
最初は、えーこれ探索?面倒くさそって思ったけど、
後からセルの高さが2という事実に気づく。
public int maxScore(String[] grid) {
int result = 0;
boolean[][] map = new boolean[2][grid[0].length()];
for (int i = 0; i < 2; i++) {
for (int j = 0; j < grid[0].length(); j++) {
if (grid[i].charAt(j) == '1') {
map[i][j] = true;
result++;
}
}
}
// 4x4
for (int i = 0; i < grid[0].length() - 1; i++) {
if (!map[0][i] && !map[0][i + 1] && !map[1][i] && !map[1][i + 1]) {
map[0][i] = true;
map[0][i + 1] = true;
map[1][i] = true;
map[1][i + 1] = true;
result += 16;
}
}
for (int i = 0; i < 2; i++) {
for (int j = 0; j < grid[0].length(); j++) {
if (!map[i][j]) result++;
}
}
return result;
}
208.51
Problem 500 NumericalPerfectionLevel
これも最初、問題の意味が分からなかった。
例がなかったらきっと一生解読できなかったと思う。
素数を使うオーラは感じたけど、面倒くさかったので枝刈り無しで。
バカだった。ICPCボケだなぁ。
public class NumericalPerfectionLevel {
public int getLevel(long N) {
int count = 0;
for (long i = 2; i <= N; i++) {
while (N % i == 0) {
count++;
N /= i;
}
if (N <= i) break;
}
int k = 0;
for (int i = 4; i <= count; i *= 4, k++);
return k;
}
4回守ったが、5回目にやられてた。
後で試したら1ケースだけTLE・・・あぁ。
0.0
Problem1000 RotatingTriangles
これDiv1の1問目なの?
人のblogしか読んでないから分からないけど、だったたとしたら恐ろしい。
つっても、ちょろちょろ解読してると意外と探索でいけそうだなぁ。
書いてみようかなぁーでも眠い・・・でダウン。
Challengeは出てないけど、起きたら500が落ちててしょぼん。
でもレートはあがってた。元がひどいからか。
次は2問といて緑ネ目指すぞー。
