[POJ1835]宇航员<模拟>
链接:http://poj.org/problem?id=1835
题干太长我就不放描述了。
一道大模拟
看着就脑壳疼。
难点可能在于方向的确认上
要明确当前的头朝向和脸朝向,才能进行处理
一个小小坑可能算是up和down吧,不看图可能就觉得是直上直下了
里面所有的方向都是相对于当前脸的朝向的。
然后就是0对3 1对4 2对5 取相反可以+3再%6
然后就是一堆if
case也行,不过我那提交一直提示编译错误,改if就没了,不知道为啥
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<queue>
#include<utility>
#include<stack>
#include<cstdlib>
#define ll long long
#define inf 0x3fffffff
using namespace std; int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} void fre(){
freopen(" .in","r",stdin);
freopen(" .out","w",stdout);
} int x,y,z,step,n,T; void sec_main(int direct){
if(direct==)x+=step;
if(direct==)y+=step;
if(direct==)z+=step;
if(direct==)x-=step;
if(direct==)y-=step;
if(direct==)z-=step;
} int main(){
int head,dir,left,temp;
T=read();
while(T--){
n=read();
char s[];
head=,dir=,left=,x=y=z=;
for(int i=;i<n;++i){
scanf("%s %d",s,&step);
if(s[]=='b'){
dir=(dir+)%,left=(left+)%;
}
if(s[]=='l'){
temp=left,left=(dir+)%,dir=temp;
}
if(s[]=='r'){
temp=dir,dir=(left+)%,left=temp;
}
if(s[]=='u'){
temp=head,head=(dir+)%,dir=temp;
}
if(s[]=='d'){
temp=dir,dir=(head+)%,head=temp;
}
sec_main(dir);
}
cout<<x<<' '<<y<<' '<<z<<' '<<dir<<endl;
}
return ;
}
题不难
但是码起来真的不舒服
建议画画图
[POJ1835]宇航员<模拟>的更多相关文章
- 模拟--poj1835宇航员的故事
这道题委实无语了,刚开始以为是很一般的方位模拟题,懒得看样例直接写的代码,然后敲了好几个switch结果样例居然没出来.. 仔细分析了样例之后才发现原来随着宇航员方位的改变他的左手方向以及头顶方向是跟 ...
- ACM训练计划建议(写给本校acmer,欢迎围观和指正)
ACM训练计划建议 From:freecode# Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...
- 【POJ水题完成表】
题目 完成情况 poj1000:A+B problem 完成 poj1002:电话上按键对应着数字.现在给n个电话,求排序.相同的归一类 完成 poj1003:求最小的n让1+1/2+1/3+...+ ...
- ACM训练计划建议(转)
ACM训练计划建议 From:freecode# Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...
- POJ - 1835 宇航员(模拟题)
问题描述: 宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示: 现对六个方向分别标 ...
- 【POJ】1835:宇航员【模拟】【三维行走】
宇航员 Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 7228 Accepted: 3050 Description 问 ...
- poj 1835 宇航员
http://poj.org/problem?id=1835 宇航员 Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 4802 ...
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 故障重现, JAVA进程内存不够时突然挂掉模拟
背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...
随机推荐
- Hexo站点Next主题添加google adsense广告
本文转载自: https://www.93bok.com 前言 无意之间看到了google adsense的广告,于是就想到给我的站点也弄一个,本来以为是很简单的事,参考了很多资料,终于是部署成功了, ...
- JUC常用同步工具类——CountDownLatch,CyclicBarrier,Semaphore
在 JUC 下包含了一些常用的同步工具类,今天就来详细介绍一下,CountDownLatch,CyclicBarrier,Semaphore 的使用方法以及它们之间的区别. 一.CountDownLa ...
- C#编程_单线程IP地址解析
单线程IP地址解析 目标程序 界面如下图 设计方法:完成单个IP地址解析,循环调用方法,完成扫描. 注意用stopwatch计算时间. 实现思路 先知道怎么解析一个单个的IP地址. 用循环的方法解 ...
- js获取当前日期是一年中的第几天
js获取当前日期为一年中的第几天 const currentYear = new Date().getFullYear().toString(); // 今天减今年的第一天(xxxx年01月01日) ...
- HTML5历史管理状态机制
前言:想要不刷新页面同时改变url 可以用HTML5 window对象的 hashChange 事件.同时介绍两个相关的api 和 1个事件. 两个API:1.history.pushState({n ...
- nor flash之4字节地址模式
背景 容量低于 16M bytes 的 nor,一般使用 3 字节地址模式,即命令格式是 cmd + addr[2] + addr[1] + addr[0] + ... 使用超过 16M bytes ...
- 网络|Trojan 网络代理服务搭建
Trojan 网络代理服务搭建 前言 本文目的在于帮助相同困惑的网友,让使用更加简单. Trojan为Trojan-GFW开源的一款新思路网络代理软件, 前期准备 [x] 服务器:系统CentOS 7 ...
- 单页面和多页面的网页差别比较(SPA)
单页面应用(singlePAge Web Application) 多页面应用MultiPage Applicaton,MPA) 组成 一个外壳页面和多个页面片段组成 多个完整的页面组成 资源公用 ...
- CVE-2020-1947 Sharding-UI的反序列化复现及分析
CVE-2020-1947 复现及分析 0x01 影响 Apache ShardingSphere < =4.0.0 0x02 环境搭建 incubator-shardingsphere 的ui ...
- Python中使用os模块执行远程命令
1. 使用os模块远程执行命令 服务端代码 1 import socket 2 import os 3 4 sh_server = socket.socket() #创建一个socket对象 5 sh ...