POJ 1835 大模拟

宇航员

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#define maxn 10010
using namespace std;
int a[7],temp[7];
char str[10];
void solve(int str2[],int str3[])
{
    if(strcmp(str,"forward")==0)//方向不变
    {
        str2[0]=str3[0];
        str2[1]=str3[1];
        str2[2]=str3[2];
        str2[3]=str3[3];
        str2[4]=str3[4];
        str2[5]=str3[5];
    }
    if(strcmp(str,"back")==0)//向后转,正,背,左,右变换
    {
        str2[0]=str3[1];
        str2[1]=str3[0];
        str2[2]=str3[3];
        str2[3]=str3[2];
        str2[4]=str3[4];
        str2[5]=str3[5];
    }
    if(strcmp(str,"left")==0)//向左转,正,背,左,右变换
    {
        str2[0]=str3[2];
        str2[1]=str3[3];
        str2[2]=str3[1];
        str2[3]=str3[0];
        str2[4]=str3[4];
        str2[5]=str3[5];
    }
    if(strcmp(str,"right")==0)//向右转,正,背,左,右变换
    {
        str2[0]=str3[3];
        str2[1]=str3[2];
        str2[2]=str3[0];
        str2[3]=str3[1];
        str2[4]=str3[4];
        str2[5]=str3[5];
    }
    if(strcmp(str,"up")==0)//向上走,正,背,上,下变换
    {
        str2[0]=str3[4];
        str2[1]=str3[5];
        str2[2]=str3[2];
        str2[3]=str3[3];
        str2[4]=str3[1];
        str2[5]=str3[0];
    }
    if(strcmp(str,"down")==0)//向下转,正,背,上,下变换
    {
        str2[0]=str3[5];
        str2[1]=str3[4];
        str2[2]=str3[2];
        str2[3]=str3[3];
        str2[4]=str3[0];
        str2[5]=str3[1];
    }
}
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        int x;
        temp[0]=0;//面前
        temp[1]=3;//背后
        temp[2]=4;//左手
        temp[3]=1;//右手
        temp[4]=2;//头顶
        temp[5]=5;//脚下
        int u=0;
        int w=0;
        int v=0;
        int y;
        while(n--)
        {
            scanf("%s",str);
            solve(a,temp);
            cin>>x;
            for(int i=0; i<6; i++)  temp[i]=a[i];
            int y=temp[0];
            if(y==0)
                u+=x;
            if(y==3)
                u-=x;
            if(y==1)
                v+=x;
            if(y==4)
                v-=x;
            if(y==2)
                w+=x;
            if(y==5)
                w-=x;
            if(n==0)
                cout<<u<<" "<<v<<" "<<w<<" "<<y<<endl;
        }
    }
    return 0;
}

POJ 1835 大模拟

时间: 2025-01-08 15:44:48

POJ 1835 大模拟的相关文章

AC日记——神奇的幻方 洛谷 P2615(大模拟)

题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,…,N*N): 1.若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K−1)所在列的右一列: 2.若(K−1)在最后一列但不在第一行,则将K填在第一列,(K−1)所在行的上一行: 3.若(K−1)在第一行最后一列,则将K填在(K−1)

[ACM] POJ 1068 Parencodings(模拟)

Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19352   Accepted: 11675 Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two different ways: q By an integer sequence P = p1 p2...pn

POJ Exponentiation(大浮点数JAVA轻松解决)

题目链接:Clicke Here~ java解决大数就是爽阿!~ 以前大数模板敲啊敲的,敲了半天发现一交果断wrong.只从学会了java妈妈在不用担心我遇到大数了/ 这道题遇到的Java函数有: stripTrailingZeros()            去掉后缀0 toPlainString()               返回大数的非科学计数法 startsWith() startsWith()函数介绍及扩展: 描述 startsWith(),endsWith()的作用,用法,判断字符

URAL 1715. Another Ball Killer (大模拟)

1715. Another Ball Killer Time limit: 2.0 second Memory limit: 64 MB Contestants often wonder what jury members do during a contest. Someone thinks that they spend all the contest fixing bugs in tests. Others say that the jury members watch the conte

【POJ 1028】模拟浏览器

本题要求模拟浏览器的前进.后退等操作. 用两个栈实现,一个控制前进,一个控制后退. 在前进与后退操作中,从一个栈中弹出栈顶元素,压入另一个栈中. 当打开一个新网页时,将前进栈清空. 代码如下: #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <cstdlib> #include

poj 2689 大范围内素数筛选

1 /** 2 给定一定范围求其内的素数 3 4 注意: 5 **/ 6 7 #include <iostream> 8 #include <math.h> 9 #include <cstring> 10 using namespace std; 11 #define maxn 1000000 12 long long prime[500000]; 13 long long cprime[500000]; 14 long long isprime[maxn+100];

POJ 1102 LC-Display 模拟

Description A friend of you has just bought a new computer. Until now, the most powerful computer he ever used has been a pocket calculator. Now, looking at his new computer, he is a bit disappointed, because he liked the LC-display of his calculator

大模拟祭

考试的前一天晚上我还在和$letong$说,我以后晚上再颓就去打模拟,然后就考了个大模拟 我比较$sb$,各种情况全分开了,没怎么压行,打了$1000$行整,$30$多$k$,妈妈再也不怕我打不出来猪国杀了 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 int n,len,Std; 6 int b[5]; 7 char s[20],ss[20];

poj 1835 宇航员

http://poj.org/problem?id=1835 宇航员 Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 4802   Accepted: 2058 Description 问题描述:  宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示: 现对六个方向分别标号,x,y,z正方向分别为0,1,2,