HDU4452 Running Rabbits(模拟)
来源:互联网 发布:网络维护培训资料 编辑:程序博客网 时间:2024/05/18 09:35
题目链接
题意
- 一个NxN的方阵。
- 一个机器人从左下角出发,另一个机器人从右下角出发。
- 机器人在撞墙的时候会掉头(turn around),在固定的时间会左转
- 如果两个机器人想遇,则两个机器人互换方向(只会在整数小时时相遇),且忽略此时的左转
解决
模拟,使用一个类来封装一些函数,会好写好多
#include<bits/stdc++.h>using namespace std;int N;struct TOM{ int x,y; int speed; int dir; //n->1 s->2 w->3 e->4 TOM(int s = 0 , int d = 0){ x = 1; y = 1; speed = s; dir = d; } void turnleft() { if(dir==1) dir=3; else if(dir==2) dir=4; else if(dir==3) dir=2; else if(dir==4) dir=1; } void go() { int tmp = speed; while(tmp--) { if(dir==1){ if(x==1){ tmp++; dir = 2; continue; } x--; } else if(dir==2){ if(x==N){ tmp++; dir = 1; continue; } x++; } else if(dir==3){ if(y==1){ tmp++; dir = 4; continue; } y--; } else if(dir==4){ if(y==N){ tmp++; dir = 3; continue; } y++; } } }};struct JARRY{ int x,y; int speed; int dir; //n->1 s->2 w->3 e->4 JARRY(int s = 0 , int d = 0){ x = N; y = N; speed = s; dir = d; } void turnleft() { if(dir==1) dir=3; else if(dir==2) dir=4; else if(dir==3) dir=2; else if(dir==4) dir=1; } void go() { int tmp = speed; while(tmp--) { if(dir==1){ if(x==1){ tmp++; dir = 2; continue; } x--; } else if(dir==2){ if(x==N){ tmp++; dir = 1; continue; } x++; } else if(dir==3){ if(y==1){ tmp++; dir = 4; continue; } y--; } else if(dir==4){ if(y==N){ tmp++; dir = 3; continue; } y++; } } }};int main(){ while(~scanf("%d",&N)) { if(!N) break; char str[5]; int s1,s2,t1,t2,dir; scanf("%s%d%d",str,&s1,&t1); if(str[0]=='N') dir = 1; if(str[0]=='S') dir = 2; if(str[0]=='W') dir = 3; if(str[0]=='E') dir = 4; TOM tom(s1,dir); scanf("%s%d%d",str,&s2,&t2); if(str[0]=='N') dir = 1; if(str[0]=='S') dir = 2; if(str[0]=='W') dir = 3; if(str[0]=='E') dir = 4; JARRY jarry(s2,dir); int k; scanf("%d",&k); for(int i=1;i<=k;i++){ tom.go(); jarry.go(); if(tom.x==jarry.x&&tom.y==jarry.y){ swap(tom.dir,jarry.dir); continue; } if(i%t1==0) tom.turnleft(); if(i%t2==0) jarry.turnleft(); } printf("%d %d\n",tom.x,tom.y); printf("%d %d\n",jarry.x,jarry.y); }}
阅读全文
0 0
- HDU4452 Running Rabbits(模拟)
- hdu4452 搜索模拟 Running Rabbits (2012 Asia JinHua Regional Contest problem K)
- HDU Running Rabbits(模拟)
- HDU 4452 Running Rabbits 【模拟】
- [模拟] hdu 4452 Running Rabbits
- HDU 4452 Running Rabbits [模拟]
- [hdu 4452] Running Rabbits 模拟
- hdu 4452 Running Rabbits (模拟)
- Hdu 4452 Running Rabbits 大模拟
- hdu 4452 Running Rabbits (简单模拟)
- hdu 4452 Running Rabbits(模拟水题)
- HDU 4452 Running Rabbits (模拟题)
- HDU 4452 - Running Rabbits(模拟)
- HDOJ 4452 Running Rabbits(模拟)
- HDU 4445 Running Rabbits(模拟)
- HDU 4452 Running Rabbits (模拟)
- hdu4452 Running Rabbit
- Running Rabbits
- hdu1716粘结答案处,hdu怎么总是打不开
- 天天快递
- HDU 5992 Finding Hotels KDtree
- DDL-操作数据表
- iOS 多任务下载(支持离线
- HDU4452 Running Rabbits(模拟)
- Map集合遍历
- 请写出 float x 与“零值”比较的 if 语句(面试题)
- 中国科学院微生物研究所——人类肠道微生物2016年文章精选
- hdu 3966 Aragorn's Story(树链剖分)
- 数据结构第二周项目-C++参数传递的三种方式
- 【Android系列】View的绘制之measure过程
- DDL-操作数据库
- 我的gulp的初次尝试