• poj 2632 Crashing Robots


    题目:http://poj.org/problem?id=2632

    题意:已知仓库大小,告诉机器人的起始位置和方向,告诉m条指令,求按指令会不会撞墙或撞机器人。

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<cstdlib>
     5 #include<algorithm>
     6 using namespace std;
     7 
     8 int map[110][110];
     9 int dx[5]={0,1,0,-1};
    10 int dy[5]={1,0,-1,0};
    11 struct node
    12 {
    13      int x,y,d;//d与dx,dy数组记录方向
    14 }rob[1000];
    15 int main()
    16 {
    17    int t,n,m,a,b,i;
    18    int f,r,rep,r1,r2;
    19    char act,ch;
    20    cin>>t;
    21    while(t--)
    22    {
    23        f=0;
    24        memset(map,0,sizeof(map));
    25        cin>>a>>b>>n>>m;
    26        for(i=1; i<=n; i++)
    27        {
    28            cin>>rob[i].x>>rob[i].y>>ch;
    29            map[rob[i].x][rob[i].y]=i;//map用坐标记录机器人的位置
    30            if(ch=='N') rob[i].d=0;
    31            if(ch=='E') rob[i].d=1;
    32            if(ch=='S') rob[i].d=2;
    33            if(ch=='W') rob[i].d=3;
    34        }
    35        while(m--)
    36        {
    37            cin>>r>>act>>rep;
    38            if(f==0)
    39            {
    40                if(act=='L') rob[r].d=((rob[r].d-rep)%4+4)%4;
    41                else if(act=='R') rob[r].d=(rob[r].d+rep)%4;
    42             else
    43             {
    44                 map[rob[r].x][rob[r].y]=0;
    45                 for(i=0; i<rep; i++)
    46                 {
    47                     rob[r].x+=dx[rob[r].d];
    48                     rob[r].y+=dy[rob[r].d];
    49                     if(rob[r].x<=0 || rob[r].y<=0 || rob[r].x>a ||rob[r].y>b)
    50                     {
    51                         r1=r;
    52                         f=1;
    53                         break;
    54                     }
    55                     else if(map[rob[r].x][rob[r].y])
    56                     {
    57                         r1=r;
    58                         f=2;
    59                         r2=map[rob[r].x][rob[r].y];
    60                         break;
    61                     }
    62                 }
    63                 if(f==0)
    64                map[rob[r].x][rob[r].y]=r;
    65             }
    66            }
    67        }
    68        if(f==1) printf("Robot %d crashes into the wall
    ", r1);
    69        else if(f==2) printf("Robot %d crashes into robot %d
    ", r1,r2);
    70        else printf("OK
    ");
    71    }
    72     return 0;
    73 }
  • 相关阅读:
    lua 5.3最简单plugin编写
    CMake for MFC example
    写了个自动生成vcxproj的程序
    kindle試玩
    解放双手:如何在本地调试远程服务器上的Node代码
    PM2实用入门指南
    Express使用手记:核心入门
    Node服务一键离线部署
    fis-receiver:一行命令将项目部署到远程服务器
    Reflux系列01:异步操作经验小结
  • 原文地址:https://www.cnblogs.com/bfshm/p/3227867.html
Copyright © 2020-2023  润新知