广搜
来源:互联网 发布:国外 恐怖 知乎 编辑:程序博客网 时间:2024/06/09 22:55
广搜 优先队列
#define N 305 //行#define M 305 //列struct zuobiao{ //储存坐标和走到当前坐标所需最小步数 int x,y; int sum; friend bool operator < (zuobiao a, zuobiao b) { return a.sum>b.sum; //值小的优先级高 }}p,k;char t[N][M];int vis[N][M],n,m,kk;int q_x,q_y,z_x,z_y;int dir[4][2]={{0,1},{0,-1},{-1,0},{1,0}};//循环处理坐标上下左右priority_queue<zuobiao>q;int judge() //判断是否可以入队函数{ if(k.x>=0&&k.x<N&&k.y>=0&&k.y<M&& (t[k.x][k.y]=='E'||t[k.x][k.y]=='B')&&vis[k.x][k.y]==0) return 1; return 0;}void bfs(){ memset(vis,0,sizeof(vis)); while(!q.empty())q.pop(); p.x=q_x; p.y=q_y; p.sum=0; q.push(p); vis[p.x][p.y]=1; while(!q.empty()) { p=q.top(); q.pop(); if(p.x==z_x&&p.y==z_y)//判断是否是终点 { cout<<p.sum<<endl; //输出终点 kk=0; break; } for(int i=0;i<4;i++)//四个方向 { k.x=p.x+dir[i][0]; k.y=p.y+dir[i][1]; k.sum=p.sum+1; if(judge())//判断是否符合标准 { if(t[k.x][k.y]=='B') k.sum+=1; vis[k.x][k.y]=1; q.push(k); } } }}
广搜
#define N 305 //行#define M 305 //列struct zuobiao{ //储存坐标和走到当前坐标所需最小步数 int x,y; int sum;}p,k;char t[N][M];int vis[N][M],n,m,kk;int q_x,q_y,z_x,z_y;int dir[4][2]={{0,1},{0,-1},{-1,0},{1,0}};//循环处理坐标上下左右queue<zuobiao>q;int judge() //判断是否可以入队函数{ if(k.x>=0&&k.x<N&&k.y>=0&&k.y<M&& (t[k.x][k.y]=='E')&&vis[k.x][k.y]==0) return 1; return 0;}void bfs(){ memset(vis,0,sizeof(vis)); while(!q.empty())q.pop(); p.x=q_x; p.y=q_y; p.sum=0; q.push(p); vis[p.x][p.y]=1; while(!q.empty()) { p=q.top(); q.pop(); if(p.x==z_x&&p.y==z_y)//判断是否是终点 { cout<<p.sum<<endl; //输出终点 kk=0; break; } for(int i=0;i<4;i++)//四个方向 { k.x=p.x+dir[i][0]; k.y=p.y+dir[i][1]; k.sum=p.sum+1; if(judge())//判断是否符合标准 { vis[k.x][k.y]=1; q.push(k); } } }}
阅读全文
0 0
- 广搜
- 广搜
- 广搜
- 广搜
- 广搜
- 广搜
- POJ_3278_广搜
- 深搜 广搜
- hdu 1026 广搜
- 1242 rescue 广搜
- zoj 1091 广搜。
- POJ3083 广搜&模拟
- poj3278基本广搜
- POJ3414广搜&回溯
- nysit 20 广搜
- 双向广搜
- 双向广搜
- 深搜&&广搜_Poj_3083
- 【数据库-SQLServer】时间-日期语法
- TS协议解析第一部分(PAT)
- WinFrm导出数据到dbf文件
- 左耳朵耗子:Go语言,Docker和新技术
- Tomcat配置
- 广搜
- 提高MySQL性能的7个技巧
- MySQL INFORMATION_SCHEMA 使用
- 数据结构之线索二叉树的前序,中序和后序遍
- 【JavaWeb】springmvc + hibernate整合配置
- 开发者最讨厌的编程语言:Perl 名列第一,PHP、Objective-C 和 Ruby 都在其中
- html 第七章 表格的应用
- 典型的线性变换:短时傅立叶变换和小波变换
- python机器学习常用的几个库