POJ 1835 宇航员 (模拟&三维向量旋转)

宇航员问题 宇航员,模拟,算法,宇航员在太空移动,根据他的移动过程确定她最终的坐标,以及最终他的面向方向 立即下载
宇航员

Time Limit:  2000MS
Memory Limit: 30000K

Description

问题描述: 
  宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示: 

现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5;称它们为绝对方向。宇航员在宇宙中只沿着与绝对坐标系xyz轴平行的方向行走,但是他不知道自己当前绝对坐标和自己面向的绝对方向。 

任务描述: 
  请根据宇航员对自己在相对方向上移动的描述确定宇航员最终的绝对坐标和面向的绝对方向。对在相对方向上移动的描述及意义如下: 
forward x  向前走x米。 
back x 先转向后,再走x米。 
left x 先转向左,再走x米。 
right x 先转向右,再走x米。 
up x 先面向上,再走x米。 
down x 先面向下,再走x米。 
其中向上和向下如下图所示: 

Input

第一行一个正整数m,表示测试数据的组数。每组测试数据第一行是一个正整数n(1<=n<=10000)表示宇航员行走的次数,下面n行每行输入一次相对行走,格式如上所述,其中( 1 <= x <= 10000 为正整数)。

Output

对于每组输入数据输出一行,x y z p, 中间用空格隔开,x y z是宇航员的位置的绝对坐标,p是宇航员面向的绝对方向编号(0<=p <=5)。

Sample Input

1
6
left 10
right 11
up 12
down 13
forward 14
back 15

Sample Output

23 -10 12 3

思路:用一个三维向量记录人的身体朝向的信息——面朝的方向,身体竖直方向向上的方向,人左臂平伸的方向。
6种变换就是对这个向量的操作。(详见代码)

注意:题目是左手坐标系

完整代码:
/*172ms,356KB*/

#include<cstdio>

char s[10];

int main()
{
	int t, n;
	int x, y, z, face, left, ver, temp, d; ///ver:vertical
	scanf("%d", &t);
	while (t--)
	{
		scanf("%d", &n);
		x = y = z = 0;
		face = 0, left = 4, ver = 2;
		while (n--)
		{
			scanf("%s %d", s, &d);
			if (s[0] == 'b')  face = (face + 3) % 6, left = (left + 3) % 6;
			else if (s[0] == 'l')  temp = face, face = left, left = (temp + 3) % 6;
			else if (s[0] == 'r')  temp = left, left = face, face = (temp + 3) % 6;
			else if (s[0] == 'u')  temp = face, face = ver, ver = (temp + 3) % 6;
			else if (s[0] == 'd')  temp = ver, ver = face, face = (temp + 3) % 6;
			if (face == 0)  x += d;
			else if (face == 1)  y += d;
			else if (face == 2)  z += d;
			else if (face == 3)  x -= d;
			else if (face == 4)  y -= d;
			else  z -= d; ///face == 5
		}
		printf("%d %d %d %d\n", x, y, z, face);
	}
	return 0;
}

保姆级教程:在Zynq UltraScale+ EV系列FPGA上,用VCU IP核搞定4K60帧H265视频解码与HDMI2.0输出 本文提供在Zynq UltraScale+ EV系列FPGA上使用VCU IP核实现4K60帧H265视频解码与HDMI2.0输出的全流程指南。从开发环境准备、Vivado工程配置到PetaLinux系统定制,详细解析硬件选型、IP核参数设置及性能优化技巧,帮助开发者快速构建高效视频处理系统。 阅读详情

相关推荐

MR2数据集实战:5步搞定多模态谣言检测模型训练(附完整代码)

本文详细介绍了如何使用MR2多模态数据集构建高精度谣言检测系统,涵盖环境配置、数据准备、多模态特征工程、模型架构设计、训练调优及部署优化等5个关键步骤。通过双线性融合技术处理文本、图像和网页三模态数据,解决特征对齐和模态冲突等工程难题,并提供完整代码实现和性能优化方案。

weixin_42657024的博客 240

POJ - 1835 - 模拟

题目链接:POJ-1835 题目大意: 宇航员在太空中行走,给定一个三维坐标系(x,y,z轴的正方向标号分别为0,1,2,负方向标号分别为3,4,5),他的起始位置为原点,面向X轴正方向(标号为0)。然后给你n中操作,格式为 X   Y  ,X为相对位置上的转向的方向(forward-向前,back-向后,left-向左,right向右,down-向下,up-向上) ,Y为转向后向面对着的

Code-Dreamer的博客 1053

SCL3400硬件避坑指南:引脚兼容性测试+模式切换异常处理

本文针对村田SCL3400双轴倾角计在实际硬件设计中的常见问题,提供了详细的避坑指南。重点解析了从SCL3300迁移时的引脚兼容性真相,包括SPI时序、电源去耦等关键差异,并深入探讨了模式切换中超量程错误的复现原因与软件容错方案。同时,指导了如何根据应用场景配置低通滤波器,并给出了无自动唤醒功能下的可靠电源与长线SPI通信管理策略。

weixin_29190573的博客 292

POJ 1835 宇航员 解题报告

题意&amp;amp;样例:宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示:现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5,称它们为绝对方向。宇航员在宇宙中只沿着与绝对坐标系xyz轴平行的方向行走,但是他不知道自己当前绝对坐标和自己面向的绝对方向。请根据宇...

FrozenAllen的博客 647

爬取微博热搜并分析情绪趋势:NLP + 可视化一体化实践

本文介绍了如何用Python构建微博热搜关键词爬取与情绪分析系统。通过requests库获取微博热搜数据,使用snownlp进行中文情绪分析(0-1评分),并借助pandas、matplotlib和seaborn实现数据可视化。文章提供了从环境配置、数据采集到情绪计算和趋势图绘制的完整代码示例,同时建议扩展思路包括评论分析、多维度情绪分类和舆情预警系统搭建。这套方法可以帮助快速洞察公众情绪变化,为舆情监测和市场研究提供数据支持。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 821

DASH 流媒体协议(Dynamic Adaptive Streaming over HTTP)概述——起源、MPD文件解析、相关项目

简单介绍DASH的起源与发展、MPD文件简要解析、相关项目,以及常见流媒体协议的比较

farewellyi的博客 6888

宇航员 【POJ - 1835】【模拟】

题目链接 问题描述:   宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示: 现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5;称它们为绝对方向。宇航员在宇宙中只沿着与绝对坐标系xyz轴平行的方向行走,但是他不知道自己当前绝对坐标和自己面向的绝对方向。 任务描述:   请根据宇航员对自己在相对方向上移动的描述确定宇航员最终的绝对坐标和面向的绝...

既然弱小,就只顾变强就是了 469

【2025最新版】间接平差——以水准网平差为例 (python详细过程版)

水准网间接平差的python代码实现。博客长期更新,本文最新更新时间为:2025年5月20日。

点云侠的博客 1702

C语言——宇航员

Description   宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示:  现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5,称它们为绝对方向。宇航员在宇宙中只沿着与绝对坐标系xyz轴平行的方向行走,但是他不知道自己当前绝对坐标和自己面向的...

肥不溜秋大梅子 907

Agent应用实践之三 - 基础:AgentScope-ReActAgent源码解析

本章通过总结AgentScope的核心类,再通过分析ReActAgent调用大模型的底层源码原理。使我们基本了解了Agent的基本原理,这个实现方式与OpenClaw使用pi-mono的Agent基础框架是一致的。了解完ReActAgent的基本原理,下一章我们会将一下SpringBoot集成方式的代码原理,这两章是我们构建后续内容的基本框架。

代码让AI扣 470

AVDepthData、LiDAR 深度数据与人像模式全解析:iOS 真实景深图采集与处理实战

在 iOS 高端影像系统中,真实景深信息的采集与利用已成为区分旗舰设备与基础设备的重要能力。Apple 自 iPhone 7 Plus 引入双摄虚化以来,逐步发展出基于 AVDepthData、TrueDepth 与 LiDAR 的多维深度感知技术,并开放接口供开发者获取高精度深度图,构建背景虚化、人像分割、3D 重建等多种功能。本文将深入解析 AVDepthData 的结构与使用方式,系统讲解 LiDAR 采集架构、人像模式的景深融合逻辑,以及如何在实际项目中采集、预览并处理深度图数据,实现具备工程可用性

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 1863

POJ 1835宇航员

宇航员 Time Limit: 2000MS Memory Limit: 30000K Total Submissions: 6882 Accepted: 2932 Description 问题描述:   宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所...

加油吧,少年! 564

【深度学习新浪潮】近三年垂域大模型研究与产品进展全景洞察(2022-2025)

近三年来,垂域大模型完成了从技术探索到产业落地的关键跨越,在多个行业实现效率提升与价值创造。面对数据治理、技术适配、生态建设等挑战,未来需要通过技术创新、标准制定、人才培养等多维度发力,推动垂域大模型向更高效、更可靠、更普惠的方向发展。随着"人工智能+"行动的深入推进,垂域大模型将成为数字经济与实体经济深度融合的核心驱动力,为产业智能化升级注入持续动能。

专注:太空算力、AI infra、异构调度、大模型成本工程 786

POJ 1835 : 宇航员 - 模拟,三维向量旋转

(OJ 寒假马拉松 第五场 E题)从别人博客看到较精炼的解法思路:用一个三维向量记录人的身体朝向的信息——面朝的方向,身体竖直方向向上的方向,人左臂平伸的方向。6种变换就是对这个向量的操作。(详见代码)注意:题目是左手坐标系另外可以参考这里,方法相同。#include#includeusing namespace std;int main(){ char s[10]; int t,n,x,y,z,

Booky的专栏 781

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

百练OJ:1835:宇航员

百练OJ:1835:宇航员。宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向

康雨城 967

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

poj 1835 宇航员(模拟)

宇航员Description问题描述:   宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示: 现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5;称它们为绝对方向。宇航员在宇宙中只沿着与绝对坐标系xyz轴平行的方向行走,但是他不知道自己当前绝对坐

Darkarts 928

POJ1835-模拟宇航员行走

根据题目,即要知道怎么得到x,y,z,pos(即绝对方向或者说面向). 1.只需能够左转就行,其它转向都可以在其基础上实现.  所以要列出所有 情况下左转所得到的面向pos ; 2.要能够每次行走 保存其pos和x,y,z的值. #include #include #include using namespace std; int arr[6][6]; char direction[20

Ignorance 1020

poj 1835 宇航员

//这一模拟题,我之前有接触过,我记得刚开始不会做,然后看了别人的代码,然后再自己写一遍出来,现在再来做的时候,发现自己原来还不会做,所以这次我没有看别人的代码,完全靠自己 //的思考解决了这一题!事实证明:没有经过自己思考的东西是记不住和学不会的,以后需要勤动动脑才可以!谨记! //最开始我思考这一模拟题的时候,卡住我思路的是:一直想将宇航员的状态在数组中一一表示出来,然后就可以轻松的求出他的坐

yzl_rex 1463

POJ 1835 大模拟

宇航员

u011041349的专栏 1198

POJ - 1835(找规律)

/*     POJ - 1835     一个宇航员,告诉你他怎么走了之后     问最后他朝向哪儿,坐标多少     单纯的模拟     模拟的时候     记录下 前、后、左、右、上、下就行     (其实记录前左好像就行了) */ #include #include #include #include #include #define pi 3

a892573486的博客 356

poj1835

向量运算 简单题 View Code #include &amp;lt;iostream&amp;gt;#include &amp;lt;cstdio&amp;gt;#include &amp;lt;cstdlib&amp;gt;#include &amp;lt;cstring&amp;gt;using namespace std;struct Point{ int x, y, z;} pos, head, dir;int n;void up...

weixin_34384557的博客 161

POJ 1835

为了切切题,随便找了到模拟题做。虽然是模拟题,但是好像也没有那么显然。如果按照位置全部判断一下肯定是不行的。分析问题时,要从本质入手。首先要找到它的数学公式。 这是个三维空间上的问题,首先需要两个参数来表示其状态,一个是head(身体的方向),一个是face(脸的朝向)。我们要做的就是更新这两个变量。题目中用0,1,2,3,4,5来表示6个方向,这其实是一种误导,用一维表示怎么能推出数学式子呢。...

weixin_30326741的博客 162

宇航员

Description 问题描述:   宇航员在太空中迷失了方向,在他的起始位置现在建立一个虚拟xyz坐标系,称为绝对坐标系,宇航员正面的方向为x轴正方向,头顶方向为z轴正方向,则宇航员的初始状态如下图所示: 现对六个方向分别标号,x,y,z正方向分别为0,1,2,负方向分别为3,4,5;称它们为绝对方向。宇航员在宇宙中只沿着与绝对坐标系xyz轴平行的方向行走,但是他不知道自己当前绝对坐标和自

chedan666的博客 632

POJ 1835 宇航员

原题 http://poj.org/problem?id=1835相比普通的平面移动,本题的空间立体移动的难点在于方向的改变,平面移动有4种方向,但是立体移动有6*4种方向(面朝的方向有6种,每面有4种不同的上方),枚举所有情况上万行代码也是可以过的,但是我们可以找到规律,就是每次变换的其实是一种旋转,比如向右走,是前后左右做一个90度的变换,向上走是做一个上下前后90度的变换,总共有6种改变方向

ShineRoyal 1186

poj1835 宇航员

宇航员在太空中可以上下左右前后六个方向移动 当他移动时面部朝向也随之改变 他听从指令,改变自己的相对方向和距离 最终输出他的绝对方向。 输入m测试数据组数,n行走次数,每步包含方向和距离 输出绝对坐标,以及面向方向p http://poj.org/problem?id=1835 ①三维坐标方向需要由三个变量控制是本题的关键 ②然后发现x,y,z正方向分别为0,1,2,负方向分别为3...

weixin_30621919的博客 200
上一篇: POJ 1780 Code (十进制格雷码&欧拉回路)
下一篇: UVa 11234 Expressions (二叉树重建&由叶往根的层次遍历)
synapse7
博客等级 码龄14年 432粉丝 701原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值