博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3026 Borg Maze 广搜(BFS)+最小生成树
阅读量:5905 次
发布时间:2019-06-19

本文共 2099 字,大约阅读时间需要 6 分钟。

题意:从S出发,去抓每一个A,求总路径最短长度。在S点和A点人可以分身成2人,不过一次只能让一个人走。

思路是先利用BFS求出各点之间的距离,建成图,再套用最小生成树模板。

一次性A了。不过觉得在判断第几个编号的点时稍显麻烦了。

#include 
#include
#include
#include
using namespace std;const int inf=1000000;const int maxn=205;char mapp[maxn][maxn];bool visit[maxn][maxn];bool vis[maxn];int dx[]= {-1,0,1,0}; //四个方向int dy[]= {
0,-1,0,1};int mat[maxn][maxn],dis[maxn];int cou,ans;struct Node{ int x; int y; int s; //记录距离 int num; //点的编号} next,nodes[maxn]; //nodes[]存所有的点void bfs(Node node,int a){ memset(visit,0,sizeof(visit)); node.s=0; mapp[node.y][node.x]=' '; //访问过后将'S'或'A'变成' ',下次不需重复访问 queue
q; visit[node.x][node.y]=true; q.push(node); while(!q.empty()) { node=q.front(); if(mapp[node.y][node.x]=='A') { if(a==0) { nodes[cou]=node; mat[a][cou]=mat[cou][a]=node.s; cou++; //记录有多少个点 } else { int b; for(int j=0;; j++) if(nodes[j].x==node.x && nodes[j].y==node.y) { b=nodes[j].num; break; } mat[a][b]=mat[b][a]=node.s; //将距离写入对角矩阵 } } q.pop(); for(int i=0; i<4; i++) { next=node; next.x=node.x+dx[i]; next.y=node.y+dy[i]; if(!visit[next.x][next.y] && (mapp[next.y][next.x]==' ' || mapp[next.y][next.x]=='A')) { visit[next.x][next.y]=true; next.s=node.s+1; q.push(next); } } } return ;}bool prim(){ memset(vis,0,sizeof(vis)); for(int i=0;i
mat[k][j]) dis[j]=mat[k][j]; } } return true;}int main(){ //freopen("in.txt","r",stdin); int n; scanf("%d",&n); while(n--) { int x,y; memset(mapp,0,sizeof(mapp)); scanf("%d%d",&x,&y); char c[maxn]={ 0}; gets(c); for(int i=0; i

 

转载于:https://www.cnblogs.com/pach/p/5749440.html

你可能感兴趣的文章
谈谈javascript中的prototype与继承
查看>>
时序约束优先级_Vivado工程经验与各种时序约束技巧分享
查看>>
minio 并发数_MinIO 参数解析与限制
查看>>
flash back mysql_mysqlbinlog flashback 使用最佳实践
查看>>
mysql存储引擎模式_MySQL存储引擎
查看>>
java 重写system.out_重写System.out.println(String x)方法
查看>>
配置ORACLE 11g绿色版客户端和PLSQL远程连接环境
查看>>
ASP.NET中 DataList(数据列表)的使用前台绑定
查看>>
Linux学习之CentOS(八)--Linux系统的分区概念
查看>>
System.Func<>与System.Action<>
查看>>
asp.net开源CMS推荐
查看>>
csharp skype send message in winform
查看>>
MMORPG 游戏服务器端设计--转载
查看>>
HDFS dfsclient写文件过程 源码分析
查看>>
ubuntu下安装libxml2
查看>>
nginx_lua_waf安装测试
查看>>
WinForm窗体缩放动画
查看>>
JQuery入门(2)
查看>>
linux文件描述符
查看>>
传值引用和调用引用的区别
查看>>