Submission #02367
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | #include <stdio.h> #define chmin(a,b) if ((a) > (b)) { a = (b); } const int INF = 1000000; int H, W; int shop[1020][1020]; int dp[1020][1020][16]; int bc[] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }; int main() { int i, j, k, k2, cost; char in[1020]; scanf ( "%d%d" , &H, &W); for (i = 0; i < H + 3; ++i) { for (j = 0; j < W + 3; ++j) { shop[i][j] = 0; for (k = 0; k < 16; ++k) dp[i][j][k] = INF; } } for (i = 0; i < H; ++i) { scanf ( "%s" , in); for (j = 0; j < W; ++j) { shop[i + 1][j + 1] = (in[j] == '.' ? 0 : (in[j] - '0' )); } } dp[1][1][15] = 0; for (i = 1; i <= H; ++i) { for (j = 1; j <= W; ++j) { for (k = 0; k < 16; ++k) { // move to (i + 1, j) for (k2 = 0; k2 < 16; ++k2) { if (((k & 4) == 0) != ((k2 & 8) == 0)) continue ; if (!(k & 2)) continue ; if (bc[k & 1] + bc[k2 & 6] <= 1) continue ; cost = dp[i][j][k]; if (k2 & 1) cost += shop[i + 2][j - 1]; if (k2 & 2) cost += shop[i + 2][j]; if (k2 & 4) cost += shop[i + 1][j + 1]; chmin(dp[i + 1][j][k2], cost); } // move to (i, j + 1) for (k2 = 0; k2 < 16; ++k2) { if (((k & 2) == 0) != ((k2 & 1) == 0)) continue ; if (!(k & 4)) continue ; if (bc[k & 8] + bc[k2 & 6] <= 1) continue ; cost = dp[i][j][k]; if (k2 & 8) cost += shop[i - 1][j + 2]; if (k2 & 4) cost += shop[i][j + 2]; if (k2 & 2) cost += shop[i + 1][j + 1]; chmin(dp[i][j + 1][k2], cost); } } } } printf ( "%d\n" , dp[H][W][15]); return 0; } |
ステータス
項目 | データ |
---|---|
問題 | 0262 - 屋台 (Food stalls) |
ユーザー名 | sth1427 |
投稿日時 | 2015-12-16 15:01:05 |
言語 | C++11 |
状態 | Accepted |
得点 | 5 |
ソースコード長 | 1582 Byte |
最大実行時間 | 564 ms |
最大メモリ使用量 | 72612 KB |
セット
セット | 得点 | Cases | |
---|---|---|---|
1 | INPUT1 | 1 / 1 | *in1.txt |
2 | INPUT2 | 1 / 1 | *in2.txt |
3 | INPUT3 | 1 / 1 | *in3.txt |
4 | INPUT4 | 1 / 1 | *in4.txt |
5 | INPUT5 | 1 / 1 | *in5.txt |
テストケース
ファイル名 | 状態 | 実行時間 | メモリ使用量 | # | ||||
---|---|---|---|---|---|---|---|---|
2016-yo-t6-in1.txt | AC | 37 ms | 2524 KB |
1
|
||||
2016-yo-t6-in2.txt | AC | 57 ms | 17444 KB |
2
|
||||
2016-yo-t6-in3.txt | AC | 556 ms | 70524 KB |
3
|
||||
2016-yo-t6-in4.txt | AC | 564 ms | 71508 KB |
4
|
||||
2016-yo-t6-in5.txt | AC | 560 ms | 72612 KB |
5
|
||||
2016-yo-t6-in_s1.txt | AC | 20 ms | 5624 KB | |||||
2016-yo-t6-in_s2.txt | AC | 18 ms | 5696 KB |