首页 > 代码库 > CodeForces 321 A - Ciel and Robot
CodeForces 321 A - Ciel and Robot
【题目链接】:click here~~
【题目大意】:一个robot 机器人 。能够依据给定的指令行动,给你四种指令,robot初始位置是(0,0)。指令一出。robot会反复行动,推断是否能在无限行动的情况下经过点(n,m)。
【解题思路】事实上细致模拟一下,能够发现是有周期的。推断就可以,见代码吧~~
代码:
#include <iostream> #include <algorithm> #include <bits/stdc++.h> using namespace std; const int N=105; int n,m,c,t,ans,res,tmp; char str[N]; int X[N],Y[N]; int main() { int x,y; while(~scanf("%d%d",&x,&y)) { memset(X,0,sizeof(X)); memset(Y,0,sizeof(Y)); scanf("%s",str+1); int len=strlen(str+1); if(x==0&&y==0){ puts("Yes"); return 0; } else{ bool flag=0; int j=0,xx=x; int yy=y; int uu=0,dd=0,ll=0,rr=0; for(int i=0; i<=len; ++i){ switch (str[i]){ case 'U': X[i]=X[i-1],Y[i]=Y[i-1]+1;///y[0]=1; break; case 'D': X[i]=X[i-1],Y[i]=Y[i-1]-1; break; case 'L': X[i]=X[i-1]-1,Y[i]=Y[i-1]; break; case 'R': X[i]=X[i-1]+1,Y[i]=Y[i-1];///X[0]=1, break; } /* if(str[i]=='U') { X[i]=X[i-1],Y[i]=Y[i-1]+1; /// uu++;///yy+=1 } else if(str[i]=='D') { X[i]=X[i-1],Y[i]=Y[i-1]-1; /// dd++;///yy-=1 } else if(str[i]=='L') { X[i]=X[i-1]-1,Y[i]=Y[i-1]; /// ll++;///xx-=1 } else { X[i]=X[i-1]+1,Y[i]=Y[i-1]; ///xx+=1 } */ } int zq; for(int i=0; i<=len; ++i){//2 2 int za=xx-X[i];///2-X[0]=1, int zb=yy-Y[i];///2-Y[0]=1, zq=(X[len]!=0?za/X[len]:(Y[len]!=0?zb/Y[len]:1)); if(X[len]*zq==za&&Y[len]*zq==zb&&zq>=0) ///if(zq>=0){ puts("Yes"); return 0; } } puts("No"); } } return 0; } /* 2 2 RU 1 2 RU -1 1000000000 LRRLU 0 0 D Yes No Yes Yes */
CodeForces 321 A - Ciel and Robot
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。