POJ 2632【Crashing Robots】

qt使用qxlsx实现xlsx、xls表格文件快速写入和读取 新年第二篇文章,收尾一个去年计划中发表文章和实现功能。 阅读详情

题目链接

思路:

  • 简单模拟。
  • 把方向换成数字,如下处理转向问题:
​int ans;
switch(ins)
{
	case 'L' :
		ans = (rob[t].dir + n%4) % 4 ;
		rob[t].dir = ans ? ans : 4 ;break;
	case 'R' :
		ans = (rob[t].dir + 4 - n%4) % 4;
		rob[t].dir = ans ? ans : 4 ;break;
	case 'F' :
		MoveForward(t,n);break;
}
​

完整代码:

  • 664K 0MS
​//664K		0MS


#include <iostream>
#include <cstring>

using namespace std;

const int maxn = 105;

bool mp[maxn][maxn];
bool ok;
int l,r;
int M,N;
int numr,numi;
struct ROBOT{
	int x;
	int y;
	int dir;
}rob[maxn];

void init(){
	l = r = 0;
	ok = true;
	memset(mp,0,sizeof(mp));
	return ;
}

bool check(int i){
	int x = rob[i].x;
	int y = rob[i].y;
	if(x<1 || y<1 || x>M || y>N){
		l = i; //crash into wall
		return ok = false;
	}
	return true;
}

void MoveForward(int i,int n){
	mp[rob[i].x][rob[i].y] = false;
	while(n--){
		switch(rob[i].dir)
		{
			case 1 : rob[i].x++ ;break;
			case 2 : rob[i].y++ ;break;
			case 3 : rob[i].x-- ;break;
			case 4 : rob[i].y-- ;break;
		}
		//如果没有 check,一旦越出 maxn 使用 mp 很容易 RE 
		if(check(i)) 
			if(mp[rob[i].x][rob[i].y]){
				l = i;
				for(int t=1;t<=numr;t++){
					if(t == i)
						continue;
					if(rob[t].x == rob[i].x && rob[t].y == rob[i].y){
						r = t;
						break;
					}
				}
				ok = false;
				break;
			}
			else
				;
		else
			break;
	}
	if(ok)
		mp[rob[i].x][rob[i].y] = true;
	return ;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	int T;cin>>T;
	while(T--){
		init();
		cin>>M>>N;
		cin>>numr>>numi;
		for(int i=1;i<=numr;i++){
			char dir;
			cin>>rob[i].x>>rob[i].y>>dir ;
			mp[rob[i].x][rob[i].y] = true;
			switch(dir)
			{
				case 'E' : rob[i].dir = 1;break;
				case 'N' : rob[i].dir = 2;break;
				case 'W' : rob[i].dir = 3;break;
				case 'S' : rob[i].dir = 4;break;
			}
		}
		for(int i=1;i<=numi;i++){
			int t;//serial number
			char ins;//instruction
			int n;//repeat
			cin>>t>>ins>>n;
			int ans;
			if(ok)
				switch(ins)
				{
					case 'L' :
						ans = (rob[t].dir + n%4) % 4 ;
						rob[t].dir = ans ? ans : 4 ;break;
						//
					case 'R' :
						ans = (rob[t].dir + 4 - n%4) % 4;
						rob[t].dir = ans ? ans : 4 ;break;
					case 'F' :
						MoveForward(t,n);break;
				}
			else ;
		}
		if(ok)
			cout<<"OK"<<endl;
		else
			if(r)
				cout<<"Robot "<<l<<" crashes into robot "<<r<<endl;
			else
				cout<<"Robot "<<l<<" crashes into the wall"<<endl ;
	}
	return 0;
}​
【2025最新版】间接平差——以水准网平差为例 (python详细过程版) 水准网间接平差的python代码实现。博客长期更新,本文最新更新时间为:2025年5月20日。 阅读详情

相关推荐

从零搭建AMESim与Matlab/Simulink联合仿真环境(2024版软件配置详解)

本文详细介绍了2024年最新版AMESim与Matlab/Simulink联合仿真环境的搭建与配置方法。从软件安装顺序、路径设置到编译器配置,逐步指导如何实现高效联合仿真,特别强调了版本兼容性和环境变量设置等关键细节,帮助工程师快速解决常见问题并优化仿真性能。

weixin_42538752的博客 735

POJ 刷题系列:2632. Crashing Robots

POJ 刷题系列:2632. Crashing Robots传送门:2632. Crashing Robots题意: 在一张地图(A x B)中给出N个robot的位置和初始移动方向,以及M条指令,任意两个robot不能同时移动,问是否存在非法的crash状态(撞墙,撞其他robot)。 思路: 思路比较简单的模拟题,新建一个grid地图信息,每个位置初始化为0,有机器人的位置则初始化

Demon-初来驾到 414

从X86到ARM:将VINS-Fusion-GPU和ego-planner迁移到Jetson Orin-NX时,我踩过的那些‘环境差异’坑

本文详细介绍了将VINS-Fusion-GPU和ego-planner从X86平台迁移到Jetson Orin-NX(ARM架构)时遇到的环境差异问题及解决方案。内容涵盖ARM与X86的架构差异、依赖管理、性能调优和硬件接口适配,特别强调了CUDA在ARM平台上的优化配置和内存访问技巧,帮助开发者高效完成跨平台迁移。

weixin_42647395的博客 119

poj 2632 Crashing Robots

恶心的模拟题,敲错了字符,错了…… /* * Author: stormdpzh * POJ: 2632 Crashing Robots * Time: 2012/5/12 12:02:49 */ #include #include #include #include #include #include #include #include #include #inclu

stormdpzh的专栏 448

别再只当代码阅读器了!手把手教你用Understand的实体定位器和信息浏览器,5分钟精准定位代码逻辑

本文深入解析Understand代码分析工具的高级功能,重点介绍实体定位器和信息浏览器的实战应用。通过5分钟快速定位代码逻辑的技巧,帮助开发者从代码阅读者升级为逻辑侦探,提升大型代码库的分析效率。文章包含过滤搜索、调用链追踪等实用方法,是掌握Understand核心功能的必备指南。

weixin_28745821的博客 292

极化码理论及算法研究6-SCL、CA-SCL及matlab仿真

极化码译码算法5——SCL/CA-SCL译码算法系列目录1、引言2、串行抵消列表(SCL)译码算法2.1、路径度量PM 系列目录 (如要找其他内容,欢迎访问我的主页寻找) #前言 #极化码概述 #极化码定义 #极化码编码 #极化码译码 #5G标准中极化码的编译码概述 #5G标准中极化码的编码 #5G标准中极化码的译码 #总结 1、引言 在上一节中,介绍了经典的SC译码算法的理论原理以及其matlab仿真代码,SC译码算法具有较低的译码复杂度,但是由于每个译码的比特信息都依赖于前面所有的比特信息的译码结果,得

1万+

【POJ2632】Crashing Robots

题目传送门 本题知识点:模拟 模拟机器人的运作过程,分别有三种功能,L 则是左转90°,R 则是右转90°,L 则是前进1格。让我们去模拟并判断它们的状态。 输入: 第一行是测试样例 第二行分别是矩形的长、宽(比如,5 4) // 题目是讲得很清楚的 // 4 // 3 // 2 // 1 // 1 2 3 4 5 第三行分别是机器人的个数以及指令条数 接下来是先输入每个机器人的初...

LT4585的博客 340

探索gtwr of mgtwr in python

代码】探索gtwr of GWmodel in python。

m0_46268055的博客 3388

poj2632Crashing Robots

http://poj.org/problem?id=2632 模拟算法:将整个过程完完整整的走一遍。题目怎么叙述的,程序就怎么运行。所以模拟题对算法设计的要求不高,但是需要大家选择最适当的数据结构来进行模拟,模拟题一般都很繁琐,所以信心和精心是必不可少的。 本题注意点挺多的,变量也很多,稍不注意就会错~~也算是一道比较让人头疼的模拟题了。 #include #include int ar

ViolentLittleAngel的博客 620

vTestStudio保姆教程之从0到1搭建软件环境

学习HIL测试的必经之路,保姆级教学VT从搭建到测试。

欢迎来到eee的博客 4185

【项目实战】自动化测试软件VectorCAST介绍

VectorCAST是一款先进的自动化测试软件。VectorCAST是一款功能强大、易于使用的自动化测试软件。VectorCAST适用于各种嵌入式系统的测试。VectorCAST为嵌入式系统的测试提供了一种高效、可靠的解决方案。VectorCAST提供了一整套完整的测试工具,包括测试管理、代码覆盖、缺陷定位、报告生成等,以帮助开发人员提高测试效率,确保软件质量。VectorCAST支持。

奶爸的编程之路,也就一周冷个三天 2008

POJ2632 Crashing Robots

Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8576   Accepted: 3703 Description In a modernized warehouse, robots are used to fetch the goo

乱齐八糟 388

DataCastle-租金预测

ID:编号;时间:房屋信息采集的时间;小区名:房屋所在小区,已脱敏处理;小区房屋出租数量:小区出租房屋数量,已脱敏处理;楼层:0、1、2分别表示楼层低,中,高;总层数:房屋所在建筑的总楼层数,已脱敏处理;房屋面积:房屋面积数值,已脱敏处理;房屋朝向:房屋的朝向;居住状态:房屋的居住状态,表示是否已出租或居住中,已脱敏处理;卧室数量:户型信息,数字表示卧室的个数;卫的数量:户型信息,数字表示卫生间的个数;厅的数量:户型信息,数字表示厅的个数;

优快云 精品推荐 3457

POJ 2632.Crashing Robots

题目:http://poj.org/problem?id=2632 AC代码(C++): #include #include #include #include #include #include #include #include #include using namespace std; int main(void) { int n;

njyexiong的博客 275

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Crashing Robots POJ2632

Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4556   Accepted: 1991 Description

天堂人间 3118

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

poj2632 Crashing Robots 模拟

Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10341   Accepted: 4380 Description In a modernized warehouse, robots are used to fetch the go

kyoma的博客 428

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

POJ 2632-Crashing Robots

POJ 2632-Crashing Robots

Yuric的专栏 376

POJ 2632 Crashing Robots

Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7374   Accepted: 3232 Description In a modernized warehouse, robots are used to fetch the goo

u013082590的专栏 812

poj2632 Crashing Robots

第一次WA了,因为还没给题目的数据输入完就输出答案了,没输进去的数据自然会不高兴 ̄へ ̄ 第二次runtime error,因为数组越界,醉了(ಥ _ ಥ) 学到了新的输入输出数据的方法(解放手指头!): 在main开头的地方添加以下两行 freopen("D:\input.txt","r",stdin); freopen("D:\output.txt","w",stdout);输出的数据在

franklin_lei的博客 308

Crashing Robots POJ 2632

Description In a modernized warehouse, robots are used to fetch the goods. Careful planning is needed to ensure that the robots reach their destinations without crashing into each other. Of cours

luckyrass的专栏 518

POJ 2632, Crashing Robots

模拟类 DescriptionIn a modernized warehouse, robots are used to fetch the goods. Careful planning is needed to ensure that the robots reach their destinations without crashing into each other. Of cour...

weixin_33788244的博客 179

POJ2632-Crashing Robots

全解题报告索引目录 -> 【北大ACM – POJ试题分类】 转载请注明出处:http://exp-blog.com ------------------------------------------------------------------------- 提示:简单的模拟而已。。。程序很长不是因为算法(根本就没算法= =)而是因为很多情况要考虑,要有耐心 需要小...

ζёСяêτ - 小優YoU 5007

(模拟)poj2632 Crashing Robots

题目:http://poj.org/problem?id=2632 大模拟题,值得敲敲,虽然很痛苦,需要注意的是模拟要一步一步进行,否则就WA得多少次啊。。。 下面是AC代码,很长,凑合看吧,以后会精简。。。 #include int main() { int _k,num,order,x,y,x_cur[110],y_cur[110]; int robot[110],repeat

那些你很冒险的梦 845
上一篇: POJ 1068【Parencodings】
下一篇: POJ 1573【Robot Motion】
Masker_43
博客等级 码龄8年 5粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值