poj2632 累死了
题意:
给定A*B的格子,放入N个机器人,每个机器人初始位置及朝向给定。给定M条指令。指令类型有三种:
1、L:左转90° 2、R:右转90° 3、F:前进一格
问执行指令过程中机器人是否发生碰撞,碰撞包括碰墙或碰其他机器人。安全执行完所有指令输出OK。(程序只需输出发生的第一次碰撞)
第一发我定义了一个cnate[20000][20000]直接空间爆炸
第二发不知道走过的路径中碰到机器人的话也算碰撞
第三发到第五发坐标建立错误(看图就知道了) 最后实在不知道了就看了下别人的题解...

最后总结一下:这种模拟题一定要根据题目意思来,题目是什么就怎么模拟,唉,可怜我这种英语渣渣。
这道题前前后后做了四个小时...
#include<cstdio>
#include<cstring>
#include<cmath>
const int maxn = + ;
int cnate[maxn][maxn];
int dx[] = {,,,-};
int dy[] = {,,-,};
int zhuang=,beizhuang=;
char s[];
using namespace std;
struct Robots{
int x,y,d;
}r[maxn];
int main()
{
int n,m,e=,flag;
int t;int a,b;
scanf("%d",&t);getchar();
while(t--){
flag=;
memset(cnate,,sizeof(cnate));
scanf("%d %d",&a,&b);scanf("%d %d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d %d",&r[i].x,&r[i].y);
scanf("%s",s);cnate[r[i].y][r[i].x]=i; //就是这里,建立坐标
switch(s[]){
case 'N':r[i].d=;break;
case 'E':r[i].d=;break;
case 'S':r[i].d=;break;
case 'W':r[i].d=;break;
}
}
char act[];int num,rep;
while(m--){
scanf("%d %s %d",&num,act,&rep);
if(!flag){
if(act[]=='L') r[num].d=((r[num].d-rep)%+)%;
else if(act[]=='R') r[num].d=(r[num].d+rep)%;
else{
cnate[r[num].y][r[num].x] = ;
for(int i=;i<rep;++i){
r[num].x+=dx[r[num].d];
r[num].y+=dy[r[num].d];
if(r[num].x<=||r[num].x>a||r[num].y<=||r[num].y>b){
zhuang=num;flag=;break;
}
else if(cnate[r[num].y][r[num].x]){
zhuang=num;beizhuang=cnate[r[num].y][r[num].x];
flag=;break;
}
}
if(!flag) cnate[r[num].y][r[num].x] = num;
}
}
}
if(flag==) printf("Robot %d crashes into the wall\n", zhuang);
else if(flag==) printf("Robot %d crashes into robot %d\n", zhuang, beizhuang);
else printf("OK\n");
}
return ;
}
poj2632 累死了的更多相关文章
- POJ-2632 Crashing Robots模拟
题目链接: https://vjudge.net/problem/POJ-2632 题目大意: 在一个a×b的仓库里有n个机器人,编号为1到n.现在给出每一个机器人的坐标和它所面朝的方向,以及m条指令 ...
- 为了用python计算一个汉字的中心点,差点没绞尽脑汁活活累死
为了用python计算一个汉字的中心点,差点没绞尽脑汁活活累死
- POJ2632
#include<stdio.h> #include<string.h> #include<algorithm> #include<cmath> usi ...
- hadoop多次搭建后,完整总结(累死宝宝了,搭建了十多遍了)
1.安装JDK1.1上传运用软件FileZilla,将windows上的jdk压缩包放到linux的root目录下 1.2解压jdk #创建文件夹 mkdir /usr/java(不要挂在在" ...
- poj2632 Crashing Robots
Crashing Robots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9859 Accepted: 4209 D ...
- poj2632 模拟
Crashing Robots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 8388 Accepted: 3631 D ...
- POJ2632——Crashing Robots
Crashing Robots DescriptionIn a modernized warehouse, robots are used to fetch the goods. Careful pl ...
- POJ2632 Crashing Robots(模拟)
题目链接. 分析: 虽说是简单的模拟,却调试了很长时间. 调试这么长时间总结来的经验: 1.坐标系要和题目建的一样,要不就会有各种麻烦. 2.在向前移动过程中碰到其他的机器人也不行,这个题目说啦:a ...
- poj2632 【模拟】
In a modernized warehouse, robots are used to fetch the goods. Careful planning is needed to ensure ...
随机推荐
- CISC和RISC是什么?它们的特点和区别?
CISC的英文全称为“Complex Instruction Set Computer”,即“复杂指令系统计算机”,从计算机诞生以来,人们一直沿用CISC指令集方式.早期的桌面软件是按CISC设计的, ...
- Centos 下添加开机自启动服务和脚本【转】
最近刚玩Centos7的系统,跟Centos6还是很多方面有改变的,这里记录一下怎么在Centos7下添加开机自启动脚本和服务的方法. 1.添加开机自启服务 我这里以docker 服务为例,设置如下两 ...
- Codeforces Round #410 (Div. 2) A. Mike and palindrome【判断能否只修改一个字符使其变成回文串】
A. Mike and palindrome time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- 洛谷P1541 乌龟棋 [2010NOIP提高组]
P1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家 ...
- 制作ACK集群自定义节点镜像的正确姿势
随着云原生时代的到来,用户应用.业务上云的需求也越来越多,不同的业务场景对容器平台的需求也不尽相同,其中一个非常重要的需求就是使用自定义镜像创建ACK集群. ACK支持用户使用自定义镜像创建Kuber ...
- html Servlet web.xml(转)
在浏览器输入:http://127.0.0.1:8080/test/test.html点击提交按钮,Tomcat后台输出:control: aaa's value is : bbb页面显示结果:pag ...
- python自定义函数和内置函数
函数 1.定义 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 先定义,后使用 1.2分类 系统函数 自定义函数 1.3语法: def functionname(parameter ...
- 大话鸿蒙操作系统(一)-- 先聊聊 Fuchsia OS
大话鸿蒙操作系统(一) 第一篇先不聊鸿蒙操作系统,聊聊 Google 的新系统 Fuchsia OS. 先看看 Fuchsia OS 介绍. 为什么 Google 要造新的 Fuchsia OS 操作 ...
- Java练习 SDUT-3349_答答租车系统(面向对象综合练习)
答答租车系统(面向对象综合练习) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 各位面向对象的小伙伴们,在学习了面向对 ...
- php-textarea 换行
PHP接收表单提交的信息之后 存入数据库 再次从数据库获取数据再前端显示时 空格还有回车都消失了: 解决办法: 1,存入数据库时候进行替换 2,或者在取出数据之后进行替换 然后再在html中显示 s ...