Gym
来源:互联网 发布:java 实时语音聊天 编辑:程序博客网 时间:2024/06/07 08:12
https://vjudge.net/problem/Gym-101512J
按题意模拟。
给定一个机器人。开始方向为->.
给定四个单词代表前进方向,前进的时候头也会跟着变。从初始点出发最后一定会回来,问你输出他的路径。
(考虑到最后一定会回来,那么直接模拟就好了。其实回来不回来都无所谓。)
开的数组大一点。然后直接暴力。
#include<bits/stdc++.h>using namespace std;const int maxn=500;bool a[maxn][maxn];int ff;int fx[5][2]={{0,0},{0,1},{1,0},{0,-1},{-1,0}};//int fx[5][2]{{0,0},{0,1},{1,0},{0,-1},{-1,0}};int solve(string s){ ff=1; int x=105; int y=105; a[x][y]=true; for(int i=0;i<s.length();i++){ if(s[i]=='F'){ a[x+fx[ff][0]][y+fx[ff][1]]=true; x+=fx[ff][0]; y+=fx[ff][1]; //cout<<fx[ff][0]<<" "<<fx[ff][1]<<endl; } else if(s[i]=='B'){ a[x-fx[ff][0]][y-fx[ff][1]]=true; x-=fx[ff][0]; y-=fx[ff][1]; if(ff==1) ff=3; else if(ff==2) ff=4; else if(ff==3) ff=1; else if(ff==4) ff=2; //cout<<fx[ff][0]<<" "<<fx[ff][1]<<endl; } else if(s[i]=='R'){ if(ff==1) ff=2; else if(ff==2) ff=3; else if(ff==3) ff=4; else if(ff==4) ff=1; a[x+fx[ff][0]][y+fx[ff][1]]=true; x+=fx[ff][0]; y+=fx[ff][1]; //cout<<fx[ff][0]<<" "<<fx[ff][1]<<endl; } else if(s[i]=='L'){ if(ff==1) ff=4; else if(ff==2) ff=1; else if(ff==3) ff=2; else if(ff==4) ff=3; a[x+fx[ff][0]][y+fx[ff][1]]=true; x+=fx[ff][0]; y+=fx[ff][1]; //cout<<fx[ff][0]<<" "<<fx[ff][1]<<endl; } }}bool ssx(int m){ for(int i=0;i<500;i++) if(a[m][i]) return false; return true;}bool ssy(int m){ for(int i=0;i<500;i++){ if(a[i][m]) return false; } return true;}int main(){ int m; //freopen("F:\\eee\\ee.txt","w",stdout); string s; scanf("%d",&m); int cas=1; while(m--){ cin>>s; memset(a,false,sizeof(a)); solve(s); int lef,rig; int low,high; for(int i=105;i>=0;i--){ if(ssx(i)) {low=i;break;} } for(int i=105;i<500;i++){ if(ssx(i)) {high=i;break;} } for(int i=105;i>=0;i--){ if(ssy(i)) {lef=i;break;} } if(cas==1) printf("%d\n",m+1); for(int i=105;i<500;i++){ if(ssy(i)) {rig=i;break;} } printf("%d %d\n",high-low+1,rig-lef); for(int i=low;i<=high;i++){ for(int j=lef+1;j<=rig;j++){ if(a[i][j]) printf("."); else printf("#"); } cout<<endl; } cas++; } return 0;}
阅读全文
0 0
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- 爬虫第一天(3)
- 2017ICPC 南宁网络赛M Frequent Subsets Problem
- 0博文资料目录---------------------------------------------------------------------------------------------
- java项目中Excel文件的导入导出
- #PHP#(二)变量和常量
- Gym
- python 论坛自动发帖功能
- ubuntu环境下JDK环境配置
- 简单前端——圆与圆碰撞检测
- 我所了解的指令和数据的13种寻址方式
- 17 徐然 C语言程序设计(P008)习题1
- hdu2255(KM算法模板)
- 全排列
- 找茬游戏