日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【POJ - 2632】Crashing Robots(模拟)

發(fā)布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【POJ - 2632】Crashing Robots(模拟) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題干:

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 course, all warehouses are rectangular, and all robots occupy a circular floor space with a diameter of 1 meter. Assume there are N robots, numbered from 1 through N. You will get to know the position and orientation of each robot, and all the instructions, which are carefully (and mindlessly) followed by the robots. Instructions are processed in the order they come. No two robots move simultaneously; a robot always completes its move before the next one starts moving.
A robot crashes with a wall if it attempts to move outside the area of the warehouse, and two robots crash with each other if they ever try to occupy the same spot.

Input

The first line of input is K, the number of test cases. Each test case starts with one line consisting of two integers, 1 <= A, B <= 100, giving the size of the warehouse in meters. A is the length in the EW-direction, and B in the NS-direction.
The second line contains two integers, 1 <= N, M <= 100, denoting the numbers of robots and instructions respectively.?
Then follow N lines with two integers, 1 <= Xi <= A, 1 <= Yi <= B and one letter (N, S, E or W), giving the starting position and direction of each robot, in order from 1 through N. No two robots start at the same position.?

?
Figure 1: The starting positions of the robots in the sample warehouse


Finally there are M lines, giving the instructions in sequential order.?
An instruction has the following format:?
< robot #> < action> < repeat>?
Where?is one of?

  • L: turn left 90 degrees,?
  • R: turn right 90 degrees, or?
  • F: move forward one meter,


and 1 <= < repeat> <= 100 is the number of times the robot should perform this single move.

Output

Output one line for each test case:?

  • Robot i crashes into the wall, if robot i crashes into a wall. (A robot crashes into a wall if Xi = 0, Xi = A + 1, Yi = 0 or Yi = B + 1.)?
  • Robot i crashes into robot j, if robots i and j crash, and i is the moving robot.?
  • OK, if no crashing occurs.


Only the first crash is to be reported.

Sample Input

4 5 4 2 2 1 1 E 5 4 W 1 F 7 2 F 7 5 4 2 4 1 1 E 5 4 W 1 F 3 2 F 1 1 L 1 1 F 3 5 4 2 2 1 1 E 5 4 W 1 L 96 1 F 2 5 4 2 3 1 1 E 5 4 W 1 F 4 1 L 1 1 F 20

Sample Output

Robot 1 crashes into the wall Robot 1 crashes into robot 2 OK Robot 1 crashes into robot 2

題目大意:

機(jī)器人移動。給你一些機(jī)器人的初始位置和朝向和一些移動指令。要你判斷在指令執(zhí)行的過程中是否有機(jī)器人撞墻或者兩個機(jī)器人相撞的情況。

解題報告:

? ?直接模擬就行了。當(dāng)時因為在,左右轉(zhuǎn)的那里,to = r[num].dir;寫成了to=go(op[0]),所以WA了。還是要注意細(xì)節(jié)啊!!

AC代碼:

#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair using namespace std; int maze[105][105]; int a,b; int n,m; int nx[4] = {1,0,-1,0};//右,下,左,上 int ny[4] = {0,-1,0,1};//右,下,左,上 struct Node {int x,y;int dir; } r[555]; int go(char x) {if(x == 'E') return 0;if(x == 'S') return 1;if(x == 'W') return 2;if(x == 'N') return 3; } int main() {int t;int gg = 0;char op[5];cin>>t;while(t--) {gg = 0;int ans1,ans2;memset(maze,0,sizeof maze);scanf("%d%d",&a,&b);scanf("%d%d",&n,&m);//robot個數(shù)和指令數(shù)for(int i = 1; i<=n; i++) {scanf("%d%d%s",&r[i].x,&r[i].y,op);r[i].dir = go(op[0]);maze[r[i].x][r[i].y] = i;}for(int i = 1; i<=m; i++) {int num,rep;scanf("%d%s%d",&num,op,&rep);if(gg != 0) continue;int to;if(op[0] == 'F') {to = r[num].dir;for(int j = 1; j<=rep; j++) {int tx = r[num].x + nx[to];int ty = r[num].y + ny[to];if(tx < 1 || tx > a || ty < 1 || ty > b) {gg = 2;ans1 = num;break;}if(maze[tx][ty] != 0) {gg=1;//撞人了;ans1 = num;ans2 = maze[tx][ty];break;}maze[tx][ty] = num;maze[r[num].x][r[num].y]=0;r[num].x=tx;r[num].y=ty;} }else { to = r[num].dir;while(rep>4) rep-=4;for(int j = 1; j<=rep; j++) {if(op[0] == 'L') {to = (to+4-1)%4;}else to = (to+1)%4;}r[num].dir = to;}}if(gg == 1) {printf("Robot %d crashes into robot %d\n",ans1,ans2);}else if(gg == 2) {printf("Robot %d crashes into the wall\n",ans1);}else puts("OK");}return 0 ; }

?

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的【POJ - 2632】Crashing Robots(模拟)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区三区在线观看 | 免费色网址 | 日韩精品一区在线 | 非洲黑人毛片 | 快播在线视频 | 91精品久久久久久久久中文字幕 | 中文字幕一区二区三区人妻四季 | 日韩一区二区三区四区五区 | 在线观看视频中文字幕 | 中国xxxx性xxxx产国 | 国产农村妇女毛片精品久久 | 中文在线免费 | 日日夜夜国产 | 欧美在线一级片 | 日韩不卡在线 | 国产经典一区二区三区 | 成人在线视频一区 | 国产又黄又猛视频 | 国精品人妻无码一区二区三区喝尿 | 在线免费小视频 | 日本在线一区二区三区 | 国产一区二区小说 | 99日精品| 91视频成人免费 | 在线亚洲人成电影网站色www | 伊人3| 少妇大叫太粗太大爽一区二区 | 国产高潮视频在线观看 | 欧美图片一区 | 婷婷综合在线观看 | 午夜欧美激情 | 免费爱爱视频网站 | 久久免费国产 | 日日爱影视 | a资源在线观看 | 亚洲天堂av一区二区 | 国精产品一区一区三区mba下载 | 欧美中文日韩 | 欧美乱妇在线观看 | 亚洲高清在线看 | 蜜桃视频导航 | 天堂中文8 | 美女福利一区 | 亚洲av无码不卡 | 亚洲图片在线 | 中文字幕少妇在线三级hd | 亚洲精品va | 免费人成视频在线 | 精品国产一区二区三区性色 | 成了校长的性脔h文 | 久久久6| 国产精选在线观看 | 欧美视频在线观看一区二区 | 精品国模一区二区三区欧美 | 污视频在线播放 | 亚洲高清毛片一区二区 | www.九九九| 久草综合在线 | 男男做爰猛烈啪啪高 | 色老头综合 | 三八激情网 | 成人中文字幕在线观看 | 免费一区视频 | 天天干夜夜草 | 国产三级不卡 | 亚洲一区免费在线观看 | 成人在线a | 人妻少妇精品中文字幕av蜜桃 | 亚洲妇女体内精汇编 | 91在线精品一区二区 | 蜜臀av免费一区二区三区水牛 | 欧美日韩国产中文 | 尤物网在线 | 变态另类一区二区 | 精品美女 | 麻豆精品久久 | 啪啪官网 | 污视频网站免费在线观看 | 欧美老肥熟 | www.插插| 岛国av一区二区 | 欧美群妇大交群 | 国产高清一区二区三区 | 看片地址 | 国产精品久久久国产盗摄 | 国产精品欧美在线 | 四虎色网| 18禁一区二区三区 | 色妞色视频一区二区三区四区 | 国产熟女高潮视频 | 久久久久久久久久久久国产 | 91禁在线观看 | 香蕉911 | 国内成人av | 国产成人毛毛毛片 | 日韩精品av一区二区三区 | 特级新鲜大片片 | 国产亚洲一区二区不卡 | 99久久免费看精品国产一区 |