题意: 有两只兔子,一只在左上角,一只在右上角,两只兔子有自己的移动速度(每小时),和初始移动方向。
现在有3种可能让他们转向:撞墙:移动过程中撞墙,掉头走未完成的路。 相碰: 两只兔子在K点整(即处理完一小时走的路后),在同一点,兔子A和兔子B的方向互相交换一下。 向左转 : 两只兔子有自己的转向时间T,每隔T小时,它就会向左转, 但是相碰的优先级高于它,相碰之后就不处理左转问题了。
#include#include #include #include #include #include #include #include #include #include #include #include //形如INT_MAX一类的 #define MAX 100005 #define INF 0x7FFFFFFF #define REP(i,s,t) for(int i=(s);i<=(t);++i) #define ll long long #define mem(a,b) memset(a,b,sizeof(a)) #define mp(a,b) make_pair(a,b) #define L(x) x<<1 #define R(x) x<<1|1 # define eps 1e-5 //#pragma comment(linker, "/STACK:36777216") ///传说中的外挂 using namespace std; int n; struct node { int x,y; int sp,turn; int dir; // 0,1,2,3 } tom,jer; int dirx[] = {-1,0,1,0}; int diry[] = {0,1,0,-1}; int judge(char c) { if(c == 'N') return 0; if(c == 'E') return 1; if(c == 'S') return 2; if(c == 'W') return 3; } void go(node &a,int d) { for(int i=0; i > c; scanf("%d%d",&tom.sp,&tom.turn); tom.dir = judge(c); cin >> c; scanf("%d%d",&jer.sp,&jer.turn); jer.dir = judge(c); scanf("%d",&h); solve(h); printf("%d %d\n",tom.x,tom.y); printf("%d %d\n",jer.x,jer.y); } return 0; } #include #include #include #include #include #include #include #include #include #include #include #include //形如INT_MAX一类的 #define MAX 100005 #define INF 0x7FFFFFFF #define REP(i,s,t) for(int i=(s);i<=(t);++i) #define ll long long #define mem(a,b) memset(a,b,sizeof(a)) #define mp(a,b) make_pair(a,b) #define L(x) x<<1 #define R(x) x<<1|1 # define eps 1e-5 //#pragma comment(linker, "/STACK:36777216") ///传说中的外挂 using namespace std; int n; struct node { int x,y; int sp,turn; int dir; // 0,1,2,3 } tom,jer; int dirx[] = {-1,0,1,0}; int diry[] = {0,1,0,-1}; int judge(char c) { if(c == 'N') return 0; if(c == 'E') return 1; if(c == 'S') return 2; if(c == 'W') return 3; } void go(node &a,int d) { for(int i=0; i > c; scanf("%d%d",&tom.sp,&tom.turn); tom.dir = judge(c); cin >> c; scanf("%d%d",&jer.sp,&jer.turn); jer.dir = judge(c); scanf("%d",&h); solve(h); printf("%d %d\n",tom.x,tom.y); printf("%d %d\n",jer.x,jer.y); } return 0; }