hdu_1175_BFS+剪枝_用转弯次数来限定
来源:互联网 发布:百度网盘mac 编辑:程序博客网 时间:2024/06/05 18:27
先贴代码,明天再补上说明
#include<iostream>#include<cstring>#include<algorithm>#include<queue>#include<stdio.h>using namespace std;const int maxn=1000;int map[maxn][maxn],visit[maxn][maxn];int dir[4][2]={1,0,-1,0,0,1,0,-1};int n,m;int sx,sy,ex,ey;struct Node{ int x,y; int turn; //标示转移方向};bool judge(int x,int y) //说明可以进行走动,转向{ return x>=1&&y>=1&&x<=n&&y<=m&&map[x][y]==0;}bool bfs(int x,int y){ //这才是到了关键 queue<Node> q; Node first,next; first.x=x,first.y=y,first.turn=1; //这里用自己的方式标记方向 q.push(first); while(!q.empty()) { first=q.front(); q.pop(); for(int i=0;i<4;i++) { next.x=first.x+dir[i][0]; next.y=first.y+dir[i][1]; if(next.x==ex&&next.y==ey) return true; while(judge(next.x,next.y)) //保证下一点是可以走的 { next.turn=first.turn+1; if(visit[next.x][next.y]==0 && next.turn<4) //只是一个表达式的计算而已 { q.push(next); visit[next.x][next.y]=1; } next.x+=dir[i][0]; next.y+=dir[i][1]; if(next.x==ex&&next.y==ey) return true; } } } return false;}int main(void){ int i,j,k; int query;//查询,这个关键词定义的好 while(cin>>n>>m) { if(n==0&&m==0) break; for(i=1;i<=n;i++) for(j=1;j<=m;j++) cin>>map[i][j]; cin>>query; while(query--) { memset(visit,0,sizeof(visit)); cin>>sx>>sy>>ex>>ey; if(map[sx][sy]==0 || map[ex][ey]==0 || map[sx][sy]!=map[ex][ey]) printf("NO\n"); else printf("%s\n",bfs(sx,sy)?"YES":"NO"); } }}
0 0
- hdu_1175_BFS+剪枝_用转弯次数来限定
- DFS 转弯数剪枝 hdu 1728
- HDU 1728 逃离迷宫(BFS+转弯次数+转弯方向)
- 经典c程序(0039) ---求转弯次数
- HDU 1728--【BFS && 记录转弯次数】
- 访问次数限定
- python里使用正则表达式来替换匹配成功的组并限定替换的次数
- 转弯
- 转弯
- hdu 1728 逃离迷宫 (DFS+转弯数剪枝)
- SSL 2635_最小转弯问题_dfs
- hdu 1728 逃离迷宫 注意标记转弯次数的方法
- hdoj 1728 逃离迷宫 【BFS 记录转弯次数】
- hdu 1175 连连看dfs(记录转弯次数)
- 搜索_剪枝
- 搜索_剪枝
- java实现程序运行次数限定
- hdu_1072_nightmare_BFS_用时间来限定
- http和socket之长连接和短连接区别
- 第16周项目项目4-为动态数组扩容
- Cracking the coding interview--Q9.7
- 第16周项目2-用指针玩转字符串-(2.1)去除特定字符
- 获取10个1-20之间的随机数,要求不能重复
- hdu_1175_BFS+剪枝_用转弯次数来限定
- ceph存储 centos下tail命令详解
- 确定UITextView中起始光标的位置
- 黑马程序员-GUI图形化界面
- java工程积累——java 反射 invoke
- Oracle Global Finanicals Technical Reference(二)
- 获取view的高度的方法
- const修饰类对象/对象指针/对象引用
- ceph存储 centos下lsof详解