hdu 2102 A计划_bfs搜索
题意:略
思路:此题陷阱超多,当##,#*,*#时不能走进去,套下模板就行了。
#include <iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
#define N 20
struct node{
int x,y,z;
int step;
}pri;
int next[][2]={{1,0},{0,1},{-1,0},{0,-1}};
char map[2][N][N];
int n,m,time;
bool vis[2][N][N];
bool check(node a){
if(a.x>=0&&a.x<n&&a.y>=0&&a.y<m&&map[a.z][a.x][a.y]!='*'
&&!vis[a.z][a.x][a.y]&&a.step<=time)
return 1;
return 0;
}
bool bfs(){
int i;
queue<node>q;
node tmp;
memset(vis,0,sizeof(vis));
q.push(pri);
vis[pri.z][pri.x][pri.y]=1;
while(!q.empty()){
tmp=q.front();
q.pop();
if(map[tmp.z][tmp.x][tmp.y]=='P'&&tmp.step<=time)
return 1;
for(i=0;i<4;i++){
node u;
u=tmp;
u.x+=next[i][0];
u.y+=next[i][1];
u.step+=1;
if(check(u)){
vis[u.z][u.x][u.y]=1;
if(map[u.z][u.x][u.y]=='#'&&!vis[(u.z+1)%2][u.x][u.y]){
u.z=(u.z+1)%2;
}
q.push(u);
}
}
}
return 0;
}
int main(int argc, char** argv) {
int t,i,j,k;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&time);
for(k=0;k<2;k++)
for(i=0;i<n;i++){
scanf("%s",map[k][i]);
for(j=0;j<m;j++){
if(map[k][i][j]=='S'){
pri.x=i;
pri.y=j;
pri.z=k;
pri.step=0;
}
}
} for(i=0;i<n;i++)
for(j=0;j<m;j++){
if(map[0][i][j]=='#'&&map[1][i][j]=='#')
map[0][i][j]=map[1][i][j]='*';
if(map[0][i][j]=='*'&&map[1][i][j]=='#')
map[0][i][j]=map[1][i][j]='*';
if(map[1][i][j]=='*'&&map[0][i][j]=='#')
map[0][i][j]=map[1][i][j]='*';
}
if(bfs())
printf("YES\n");
else
printf("NO\n");
}
return 0;
}
hdu 2102 A计划_bfs搜索的更多相关文章
- HDU 2102 A计划 经典搜索
A计划 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
- hdu 2102 A计划
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Description 可怜的公主在一次次被魔王掳走一次次被骑士们救回来之后,而今,不幸 ...
- HDU 2102 A计划(两层地图加时间限制加传送门的bfs)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2102 A计划 Time Limit: 3000/1000 MS (Java/Others) Me ...
- [HDU 2102] A计划(搜索题,典型dfs or bfs)
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- HDU 2102 A计划 DFS与BFS两种写法 [搜索]
1.题意:一位公主被困在迷宫里,一位勇士前去营救,迷宫为两层,规模为N*M,迷宫入口为(0,0,0),公主的位置用'P'标记:迷宫内,'.'表示空地,'*'表示墙,特殊的,'#'表示时空传输机,走到这 ...
- HDU 2102 A计划(BFS/DFS走迷宫)
A计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- hdu 2102 A计划-bfs
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...
- hdu - 2102 A计划 (简单bfs)
http://acm.hdu.edu.cn/showproblem.php?pid=2102 题目还是不难,注意起点一定是(0,0,0),然后到达P点时间<=t都可以. 用一个3维字符数组存储图 ...
- hdu 2102 A计划(优先队列+dfs)
改了好久,上午来实验室打出来了,运行就是不对,一直找啊找!还是没找到,最后突然停电了,打好的代码还没保存呢! 刚才来的时候又重新打了一遍!!!结果一个小小的错误wrong了好久!!! 在dfs值返回时 ...
随机推荐
- WPF 利用子线程弹出子窗体的研究
一般来说子线程都是用来处理数据的,主窗体用来实现展现,但是有些时候我们希望子窗体实现等待效果,遮挡主窗体并使主窗体逻辑正常进行,这个业务需求虽然不多,但是正好我们用到了,于是我打算把研究成果写在这了. ...
- codecomb 2093【牛宫】
题目描述 Description Hzgd神牛准备给自己盖一座很华丽的宫殿.于是,他看中了一块N*M的矩形空地.空地中每个格子都有自己的海拔高度.胡张想让他的宫殿的平均海拔在海平面之上(假设海平面的高 ...
- Implement Hash Map Using Primitive Types
A small coding test that I encountered today. Question Using only primitive types, implement a fixed ...
- hdu 5630 Rikka with Chess
来自官方题解: AC代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream ...
- Unity 集成联通SDK
我相信Unity程序员都会遇到加入SDK的问题,我相信如果你不会android编程,我相信你的CPU当场计算过快而爆炸! 这里也写笔记希望能帮助大家 如果有讲错的地方,希望大家能回复并且提供答案! ...
- iOS加密个人见解
说说常用的加密方式 1.单向加密,譬如 md5 .SHA 但是这种单向加密安全性也不高了,现在cpu.gpu都那么强大,运算速度很快,彩虹表 撞库 还是容易被攻破的. 如果非得用的话,可以md5加盐, ...
- Can you solve this equation?(二分)
Can you solve this equation? Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Ja ...
- Ajax——ajax调用数据总结
在做人事系统加入批量改动的功能中,须要将前台中的数据传给后台.后台并运行一系列的操作. 通过查询和学习了解到能够通过ajax将值传入到后台,并在后台对数据进行操作. 说的简单点.就是ajax调用后台的 ...
- hdu 3954 Level up(线段树)
题目链接:hdu 3954 Level up 题目大意:N个英雄,M个等级,初始等级为1,给定每一个等级须要的经验值,Q次操作,操作分两种,W l r x:表示l~r之间的英雄每一个人杀了x个怪物:Q ...
- WIN7 Net Configuration Assistant打不开
转自 http://www.cnblogs.com/caojie0432/archive/2013/07/30/3225230.html 作者:db_suploc 今天在安装oracle10g的 ...