UVaLive/LA 6802 Turtle Graphics(水题)

来源:互联网 发布:怎么p淘宝的代收货 编辑:程序博客网 时间:2024/05/17 04:26

FILE6802 - Turtle Graphics


题目大意:

类似贪吃蛇游戏。问经过给定路径(F-向前,L-左拐,R-右拐)后的终点坐标,和经过两次以上的点数。


解题思路:

模拟一下即可。


参考代码:

#include <iostream>#include <cstring>#include <string>#include <cstdio>using namespace std;const int MAXN = 100;const int dx[4] = {0, 1, 0, -1};const int dy[4] = {1, 0, -1, 0};int nCase, cCase, x, y, ans;string str;int visited[MAXN][MAXN];void init() {    memset(visited, 0, sizeof(visited));    ans = 0;}void input() {    scanf("%d%d", &x, &y);    cin >> str;}void solve() {    int direct = 0;    visited[x][y] = true;    for (int i = 0; i < str.length(); i++) {        if (str[i] == 'F') {            x += dx[direct];            y += dy[direct];            if (visited[x][y] == 1) {                ans++;            }            visited[x][y]++;        }        if (str[i] == 'L') {            direct = (direct - 1 + 4) % 4;        }        if (str[i] == 'R') {            direct = (direct + 1) % 4;        }    }    printf("Case #%d: %d %d %d\n", ++cCase, x, y, ans);}int main() {    scanf("%d", &nCase);    while (nCase--) {        init();        input();        solve();    }    return 0;}


0 0