Vladik and Favorite Game CodeForces
来源:互联网 发布:美丽说网络兼职客服 编辑:程序博客网 时间:2024/06/08 01:29
传送门:CodeForces - 811D
题意:给定n*m的图,你输出一个方向之后,系统反馈给你一个坐标,表示走完这步之后到的位子,问怎样走能在在2*n*m步之内走到终点。
起点是(1,1),终点是'F',‘*’表示不能走,游戏开始的时候,可能将U和D互换,即如果我们操作了U,但是实际是走到了D。L和R同理。
思路:看完题意就被吓到了,这是什么鬼题,特别是还有fflush这种没见过的东西。但是看完题解就被蠢到了,什么破题啊。。
先bfs记录路径,然后每一步输出正确的走法,根据反馈来确定是否有操作被调换了。
#include<bits/stdc++.h>#define ll long long#define fi first#define se second#define pi acos(-1)#define inf 0x3f3f3f3f#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1#define rep(i,x,n) for(int i=x;i<n;i++)#define per(i,n,x) for(int i=n;i>=x;i--)using namespace std;typedef pair<int,int>P;const int MAXN=100010;int gcd(int a,int b){return b?gcd(b,a%b):a;}char mp[110][110];int n,m;P pre[110][110],path[10010];bool book[110][110];int go[4][2]={1,0,0,1,-1,0,0,-1};char dir[5]="DRUL";queue<P>q;P bfs(){P u,v;book[1][1]=1;q.push(P(1,1));pre[1][1]=P(-1,-1);while(!q.empty()){u=q.front();q.pop();if(mp[u.fi][u.se]=='F')return u;for(int i=0;i<4;i++){v.fi=u.fi+go[i][0];v.se=u.se+go[i][1];if(v.fi<1||v.se<1||v.fi>n||v.se>m)continue;if(mp[v.fi][v.se]=='*')continue;if(!book[v.fi][v.se]){book[v.fi][v.se]=1;pre[v.fi][v.se]=u;q.push(v);}}}}int main(){std::ios::sync_with_stdio(0);int r,c;cin>>n>>m;for(int i=1;i<=n;i++)cin>>(mp[i]+1);P t=bfs();int cnt=0;while(t!=P(-1,-1)){path[cnt++]=t;t=pre[t.fi][t.se];}cnt--;P u,v;while(cnt>0){int d;u=path[cnt];v=path[cnt-1];for(int i=0;i<4;i++)if(u.fi+go[i][0]==v.fi&&u.se+go[i][1]==v.se){d=i;break;}cout<<dir[d]<<endl;//fflush(stdout);cin>>r>>c;if(P(r,c)!=v){if(d==0||d==2)swap(dir[0],dir[2]);else swap(dir[1],dir[3]);}elsecnt--;} return 0;}
阅读全文
0 0
- Vladik and Favorite Game CodeForces
- codeforces 811D——Vladik and Favorite Game(bfs)
- Codeforces 811D Vladik and Favorite Game【思维+Bfs】
- Codeforces 811D Vladik and Favorite Game[模拟][bfs]
- Codeforces Round #416 (Div. 2) D. Vladik and Favorite Game【交互题+BFS】
- Codeforces Round #416 (Div. 2) D. Vladik and Favorite Game 交互, BFS
- Vladik and flights CodeForces
- Vladik and Memorable Trip CodeForces
- 【35.02%】【codeforces 734A】Vladik and flights
- 【44.64%】【codeforces 743C】Vladik and fractions
- codeforces 743 A Vladik and flights(水题)
- codeforces 743 C. Vladik and fractions(构造)
- 743A. Vladik and flights codeforces
- 743C. Vladik and fractions codeforces
- CodeForces-743C Vladik and fractions(构造)
- 【Codeforces 743C Vladik and fractions】
- Codeforces 743A-Vladik and flights
- codeforces 743 C. Vladik and fractions (数学)
- Android 7.0系统调用相机崩溃
- iOS bringSubviewToFront和exchangeSubviewAtIndex方法应用
- Struts2 登录
- 最全三大框架整合(使用映射)——index.jsp
- Hadoop-rpc调用案例,服务端,客户端代码案例
- Vladik and Favorite Game CodeForces
- 快速提高编程能力---一年时间可以改变很多事
- iOS小demo之二阶贝塞尔画线
- 工厂方法模式
- 20170531_动态优化的一个小例子
- leetcode 199. Binary Tree Right Side View
- 省赛 Binary to Prime
- UR5机械臂仿真环境搭建
- 以小米时钟为demo学习自定义view过程总结