题意:

给定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 累死了的更多相关文章

  1. POJ-2632 Crashing Robots模拟

    题目链接: https://vjudge.net/problem/POJ-2632 题目大意: 在一个a×b的仓库里有n个机器人,编号为1到n.现在给出每一个机器人的坐标和它所面朝的方向,以及m条指令 ...

  2. 为了用python计算一个汉字的中心点,差点没绞尽脑汁活活累死

    为了用python计算一个汉字的中心点,差点没绞尽脑汁活活累死

  3. POJ2632

    #include<stdio.h> #include<string.h> #include<algorithm> #include<cmath> usi ...

  4. hadoop多次搭建后,完整总结(累死宝宝了,搭建了十多遍了)

    1.安装JDK1.1上传运用软件FileZilla,将windows上的jdk压缩包放到linux的root目录下 1.2解压jdk #创建文件夹 mkdir /usr/java(不要挂在在" ...

  5. poj2632 Crashing Robots

    Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9859   Accepted: 4209 D ...

  6. poj2632 模拟

    Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8388   Accepted: 3631 D ...

  7. POJ2632——Crashing Robots

    Crashing Robots DescriptionIn a modernized warehouse, robots are used to fetch the goods. Careful pl ...

  8. POJ2632 Crashing Robots(模拟)

    题目链接. 分析: 虽说是简单的模拟,却调试了很长时间. 调试这么长时间总结来的经验: 1.坐标系要和题目建的一样,要不就会有各种麻烦. 2.在向前移动过程中碰到其他的机器人也不行,这个题目说啦:a ...

  9. poj2632 【模拟】

    In a modernized warehouse, robots are used to fetch the goods. Careful planning is needed to ensure ...

随机推荐

  1. NFS服务器搭建与配置

    原文:https://blog.csdn.net/qq_38265137/article/details/83146421 NFS服务简介什么是NFS?NFS就是Network File System ...

  2. Python 正则表达式语法实例

  3. PHP 中Session 反序列化机制的三种方法

    �php.ini中存在三项配置项: session.save_path="" --设置session的存储路径 session.save_handler=""- ...

  4. MySQL安装后设置root 密码

    Mysql安装完成后初始化root 密码为空,直接回车 使用命令行: mysqladmin -u root password "123456" 来设置root密码.这里我设置的密码 ...

  5. PHP生成唯一的促销/优惠/折扣码,由字母和数字组成。

    首先我们先搞清楚什么是促销/优惠/折扣码?它有什么用作: 每一个电子商务网站,现在有一种或多种类型的优惠/折扣/优惠券系统,给大家分享一下如何在PHP生成唯一的促销/折扣码.主要是实现一个优惠码系统, ...

  6. Uva 10074【递推dp】

    UVa 10074 题意:求01矩阵的最大子0矩阵. http://www.csie.ntnu.edu.tw/~u91029/MaximumSubarray.html#2 这里说的很清楚.先求Larg ...

  7. 为什么不喜欢在 QQ 群里回答问题?

    为什么不喜欢在 QQ 群里回答问题? 没有主题,主题随时都在变. 回答后无法备份,当然自己有心可以总结一下. 实时性要求太强,可能回答但是突然有事离开,再回头看已经是 几十条的留言. QQ 群用来闲聊 ...

  8. 快速完成智能数据构建,Dataphin公共云版本全面解读

    公测两个月,Dataphin公共云版本已经受到了阿里云上众多轻量级用户的关注.事实上,Dataphin作为一款大数据智能构建与管理的产品,其核心功能是面向各行各业大数据建设.管理及应用诉求,一站式提供 ...

  9. WebLogic Server再曝高风险远程命令执行0day漏洞,阿里云WAF支持免费应急服务

    6月11日,阿里云安全团队发现WebLogic CVE-2019-2725补丁绕过的0day漏洞,并第一时间上报Oracle官方, 6月12日获得Oracle官方确认.由于Oracle尚未发布官方补丁 ...

  10. @loj - 2480@ 「CEOI2017」One-Way Streets

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一张 n 个点 m 条边的无向图,现在想要把这张图定向. 有 ...