【HDOJ】2414 Chessboard Dance
2015-03-09 10:25
323 查看
简单DFS。
/* 2414 */ #include <cstdio> #include <cstring> #include <cstdlib> const int n = 8; char map[10][10]; int x, y, d; char dirs[5] = "^v<>"; int dir[4][2] = { -1,0, 1,0, 0,-1, 0,1 }; int tdir[4][3] = { 2,3,1, 3,2,0, 1,0,3, 0,1,2 }; inline bool check(int x, int y) { return x<0 || x>=n || y<0 || y>=n; } void dfs(int x, int y) { int i, j, k; int xx, yy; xx = x + dir[d][0]; yy = y + dir[d][1]; if (check(xx, yy)) return ; if (map[xx][yy] == '.') { map[xx][yy] = map[x][y]; map[x][y] = '.'; } else { dfs(xx, yy); map[xx][yy] = map[x][y]; map[x][y] = '.'; } } int main() { int i, j, k; char cmd[10]; int xx, yy; #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); freopen("data.out", "w", stdout); #endif while (scanf("%s", map[0]) != EOF) { if (map[0][0]=='-' && map[0][1]=='-' && map[0][2]=='\0') break; for (i=1; i<8; ++i) scanf("%s", map[i]); for (i=0; i<8; ++i) { for (j=0; j<8; ++j) { if (map[i][j] == '^') { x = i; y = j; d = 0; } else if (map[i][j] == 'v') { x = i; y = j; d = 1; } else if (map[i][j] == '<') { x = i; y = j; d = 2; } else if (map[i][j] == '>') { x = i; y = j; d = 3; } } } while (scanf("%s", cmd)!=EOF && cmd[0]!='#') { if (cmd[0] == 'm') { // move scanf("%d", &k); while (k--) { xx = x + dir[d][0]; yy = y + dir[d][1]; if (check(xx, yy)) break; dfs(x, y); x = xx; y = yy; } } else { // turn scanf("%s", cmd); if (cmd[0] == 'l') { d = tdir[d][0]; } else if (cmd[0] == 'r') { d = tdir[d][1]; } else { d = tdir[d][2]; } } } map[x][y] = dirs[d]; for (i=0; i<8; ++i) { map[i][8] = '\0'; puts(map[i]); } putchar('\n'); } return 0; }
相关文章推荐
- POJ 3344 & HDU 2414 Chessboard Dance(模拟)
- HDU 2414 Chessboard Dance (力模拟)
- POJ 3344 & HDU 2414 Chessboard Dance(模拟)
- HDU 2414 Chessboard Dance(模拟题,仅此纪念我的堕落)
- 【瞎搞】 HDU 2414 Chessboard Dance
- 【瞎搞】 HDU 2414 Chessboard Dance
- HDU 2414 Chessboard Dance
- HDU 2414 Chessboard Dance (强行模拟)
- HDU 2414 Chessboard Dance
- POJ 3344 Chessboard Dance 可能会
- zoj 2097 Walking on a Chessboard
- UVA10161 Ant on a Chessboard
- Uva 10161 - Ant on a Chessboard
- poj1657——Distance on Chessboard
- LightOJ 1010 Knights in Chessboard (规律)
- Light oj 1332 - Kings in Chessboard
- 7.10161 - Ant on a Chessboard
- CSUOJ 1302 - Walking on Chessboard 暴力BFS
- 第三次训练——Problem A.Ant on a Chessboard
- UVA-10161 Ant on a Chessboard