标签:
题目链接
https://icpcarchive.ecs.baylor.edu/external/68/6802.pdf
图的标号和二维数组的不太一样,顺时针转90度就舒服多了
#include<iostream> #include<cstring> using namespace std; int vis[100][100]; int start_x, start_y; int final_x, final_y; int dirx[4] = { -1, 0, 1, 0 }; //上下左右 int diry[4] = { 0, -1, 0, 1 }; char op[300]; int face; //0123北西南东 int n; int main() { int casen; cin >> casen; for (int cas = 1; cas <= casen; cas++) { cin >> start_x >> start_y; cin >> op; memset(vis, 0, sizeof(vis)); int x = start_x; int y = start_y; vis[x][y] = 1; face = 3; n = 0; for (int i = 0; op[i]; i++) { switch (op[i]) { case 'F':{switch (face) { case 0:x = x + dirx[0]; y = y + diry[0]; vis[x][y]++; break; case 1:x = x + dirx[1]; y = y + diry[1]; vis[x][y]++; break; case 2:x = x + dirx[2]; y = y + diry[2]; vis[x][y]++; break; case 3:x = x + dirx[3]; y = y + diry[3]; vis[x][y]++; break; } break; } case 'R':face = (face + 3) % 4; break; case 'L':face = (face + 1) % 4; break; } } final_x = x; final_y = y; for (int i = 0; i < 100; i++) for (int j = 0; j < 100; j++) { if (vis[i][j]>1) n++; } cout << "Case #" << cas << ": "; cout << final_x << " " << final_y << " " << n << endl; } }
UVALive - 6802 Turtle Graphics
标签:
原文地址:http://blog.csdn.net/qq_18738333/article/details/45237107