uva 10047 The Monocycle(搜索)
好复杂的样子。。其实就是纸老虎,多了方向、颜色两个状态罢了,依旧是bfs。
更新的时候注意处理好就行了,vis[][][][]要勇敢地开。
不过这个代码交了十几遍的submission error,手都软了
代码应该是没有问题,也可以参考http://blog.csdn.net/wjjayo/article/details/5809911
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; const int MAXN=; struct P{
int x,y,d,c;
int bfn;
P(){}
P(int _x,int _y,int _d,int _c,int _bfn):x(_x),y(_y),d(_d),c(_c),bfn(_bfn){}
}que[MAXN*MAXN*]; char mp[MAXN][MAXN],n,m;
int vis[MAXN][MAXN][][],tot;
int dis[][]={-,,,-,,,,};
int ex,ey; void bfs(int a,int b)
{
int l,r;
l=r=;
que[r].x=a;
que[r].y=b;
que[r].d=;
que[r].c=;
que[r++].bfn=;
vis[a][b][][]=;
while(l<r)
{
int x=que[l].x;
int y=que[l].y;
int d=que[l].d;
int c=que[l].c;
int bfn=que[l++].bfn; if(x==ex&&y==ey&&c==)
break; int dx=dis[d][];
int dy=dis[d][];
if(!vis[x+dx][y+dy][d][(c+)%]&&mp[x+dx][y+dy]!='#'&&x+dx>=&&x+dx<n&&y+dy>=&&y+dy<m){
que[r++]=P(x+dx,y+dy,d,(c+)%,bfn+);
vis[x+dx][y+dy][d][(c+)%]=;
}
if(!vis[x][y][(d+-)%][c]){
que[r++]=P(x,y,(d+-)%,c,bfn+);
vis[x][y][(d+-)%][c]=;
}
if(!vis[x][y][(d+)%][c]){
que[r++]=P(x,y,(d+)%,c,bfn+);
vis[x][y][(d+)%][c]=;
}
}
if(l<r)
printf("Case #%d\nminimum time = %d sec\n",++tot,que[l-].bfn);
else
printf("Case #%d\ndestination not reachable\n",++tot);
} int main()
{
int sx,sy;
int i,j;
tot=;
while(scanf("%d%d",&n,&m)!=EOF)
{ if(tot)
printf("\n");
if(!n&&!m)
return ;
for(i=;i<n;i++)
{
getchar();
for(j=;j<m;j++)
{
scanf("%c",&mp[i][j]);
if(mp[i][j]=='S'){
sx=i;sy=j;
}
if(mp[i][j]=='T'){
ex=i;ey=j;
}
}
}
bfs(sx,sy);
}
return ;
}
uva 10047 The Monocycle(搜索)的更多相关文章
- UVA 10047 The Monocycle
大白图论第二题··· 题意:独轮车的轮子被均分成五块,每块一个颜色,每走过一个格子恰好转过一个颜色. 在一个迷宫中,只能向前走或者左转90度或右转90度(我曾天真的认为是向左走和向右走···),每个操 ...
- UVA 10047 The Monocycle (状态记录广搜)
Problem A: The Monocycle A monocycle is a cycle that runs on one wheel and the one we will be consi ...
- UVA 10047 - The Monocycle BFS
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- UVA 11624 UVA 10047 两道用 BFS进行最短路搜索的题
很少用bfs进行最短路搜索,实际BFS有时候挺方便得,省去了建图以及复杂度也降低了O(N*M): UVA 11624 写的比较挫 #include <iostream> #include ...
- UVA.129 Krypton Factor (搜索+暴力)
UVA.129 Krypton Factor (搜索+暴力) 题意分析 搜索的策略是:优先找长串,若长串不合法,则回溯,继续找到合法串,直到找到所求合法串的编号,输出即可. 注意的地方就是合法串的判断 ...
- UVa 10047,独轮车
题目链接:https://uva.onlinejudge.org/external/100/10047.pdf 题目链接:http://vjudge.net/contest/132239#proble ...
- uva 11624 Fire!(搜索)
开始刷题啦= = 痛并快乐着,学到新东西的感觉其实比看那些无脑的小说.电视剧有意思多了 bfs裸体,关键是先把所有的着火点放入队列,分开一个一个做bfs会超时的 发现vis[][]是多余的,完全可以用 ...
- 模拟赛20181016 Uva 1040 状压+搜索 2005 ACM world final problem c
题目的隐含条件将这道题指向了最小生成树: 利用类似prim的方法,枚举所有子图并判断是否包含询问点,如果包含那么可以更新答案: 边统计边更新,且由于更新一定是向更多的点状态下更新,所以一定可以统计到答 ...
- uva 707(记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=21261 思路:此题需要记忆化搜索,dp[x][y][t]表示当前状 ...
随机推荐
- SQL Server表分区【转】
转自:http://www.cnblogs.com/knowledgesea/p/3696912.html SQL Server表分区 什么是表分区 一般情况下,我们建立数据库表时,表数据都存放在 ...
- Maven搭建webService (一) 创建服务端---使用main函数发布服务
今天和大家分享下 使用maven 搭建 webService 服务端: 首先需要在你的IDE中集成Maven.集成办法此处略....... 1.创建一个web工程. 2.在pom文件中增加以下依赖: ...
- specular map normal map gloss map
http://www.marmoset.co/toolbag/learn/materials http://digitalerr0r.wordpress.com/2009/03/26/xna-shad ...
- failed creating the Direct3d device--debug
D3DDEVTYPE_REF 使用REF设备,用软件模拟Direct3D API 照理说是为了让电脑能跑本机不能硬件执行的渲染命令的 但我 pDeviceSettings->d3d9.Devic ...
- Oracle 10G 安装后 不能卸载, 不能打开Web管理....
1. 不能卸载. 点击这个卸载. 提示: 解决方法: 右键卸载, 设置兼容性为XP. 就可以使用了. 2. oracle10g登录em后,提示"java.lang.Except ...
- [设计模式] 5 单例模式 singleton
转处 http://blog.csdn.net/wuzhekai1985 软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径.设计模式中运用了面向对象编程语言的重要特性:封装.继承.多 ...
- hdu 2940
简单的大数乘法,直接改16进制~~ #include <cstdio> #include <cstdlib> #include <cmath> #include & ...
- 如果使用得当,MySQL 也可以化身 NoSQL
[编者按]随着互联网和移动互联网的发展,各个机构都需要支撑远超过以往的数据.而在这个需求的刺激下,IT 领域出现了大量数据处理技术,其中之一就是 NoSQL .灵活的数据类型,高效的处理能力,让 No ...
- java基础知识回顾之---java String final类普通方法的应用之“按照字节截取字符串”
/*需求:在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符.但对应的字节数不同,一个汉字占两个字节.定义一个方法,按照最大的字节数来取子串.如:对于“ab你好”,如果取三 ...
- 【mongoDB基础篇②】PHP-mongo扩展的编译以及使用
安装PHP-mongo扩展 安装php-mongo扩展和安装其他php扩展的步骤一样: #1.首先上http://pecl.php.net上面搜索mongo,得到下载地址 wget http://pe ...