POJ1835 宇航员 模拟

Posted xdaniel

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ1835 宇航员 模拟相关的知识,希望对你有一定的参考价值。

一道模拟题:http://poj.org/problem?id=1835

直接将宇航员当前方向、相对头顶方向、相对左边方向写出来即可。

代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    char s[10];
    int t, step;
    scanf("%d", &t);
    while(t--) {
        int point[6] = {0, 0, 0, 0, 0, 0};
        int dir = 0, head = 2, left = 4, n;
        scanf("%d", &n);
        getchar();
        while(n--) {
            scanf("%s%d", s, &step);
            if(s[0] == ‘f‘) {
                point[dir] += step;
            }
            else if(s[0] == ‘b‘) {
                left = (left + 3) % 6;
                dir = (dir + 3) % 6;
                point[dir] += step;
            }
            else if(s[0] == ‘l‘) {
                int t = dir;
                dir = left;
                left = (t + 3) % 6;
                point[dir] += step;
            }
            else if(s[0] == ‘r‘) {
                int t = dir;
                dir = (left + 3) % 6;
                left = t;
                point[dir] += step;
            }
            else if(s[0] == ‘u‘) {
                int t  = dir;
                dir = head;
                head = (t + 3) % 6;
                point[dir] += step;
            }
            else if(s[0] == ‘d‘){
                int t = dir;
                dir = (head + 3) % 6;
                head = t;
                point[dir] += step;
            }
        }
        printf("%d %d %d %d ", point[0] - point[3], point[1] - point[4], point[2] - point[5], dir);
    }
    return 0;
}

 

以上是关于POJ1835 宇航员 模拟的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1835宇航员

[OpenJudge] 宇航员(模拟)

模拟飞行 F-14B Tomcat雄猫战斗机 中文指南 3.5领航员右前面板

[poj]poj2632(模拟)

poj2420(模拟退火大法好)

模拟退火 (poj 2420, poj 2069)