J - Borg Maze
J - Borg Maze
#include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define MAXN 110 using namespace std; int fa[MAXN]; struct nond{int x,y,z; }v[MAXN*MAXN]; struct none{int x,y,z; }; int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; int t,n,m,tot,sum,ans,point; int map[MAXN][MAXN],vis[MAXN][MAXN]; void bfs(int x,int y){queue<none>que;none s;s.x=x;s.y=y;s.z=0;memset(vis,0,sizeof(vis));vis[x][y]=1;que.push(s);int k=1;while(!que.empty()){none now=que.front();que.pop();for(int i=0;i<4;i++){int cx=now.x+dx[i];int cy=now.y+dy[i];int cz=now.z+1;if(cx>=1&&cx<=n&&cy>=1&&cy<=m&&map[cx][cy]>=0&&!vis[cx][cy]){if(map[cx][cy]>0){ v[++tot].x=map[x][y];v[tot].y=map[cx][cy];v[tot].z=cz;k++; }if(k==point) return ;none tmm;tmm.x=cx;tmm.y=cy;tmm.z=cz;vis[cx][cy]=1;que.push(tmm);}}} } int cmp(nond a,nond b){return a.z<b.z; } int find(int x){if(fa[x]==x) return x;else return fa[x]=find(fa[x]); } int main(){scanf("%d",&t);char tmp[MAXN];while(t--){scanf("%d%d",&m,&n);gets(tmp);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){char x;scanf("%c",&x);if(x=='#') map[i][j]=-1;else if(x==' ') map[i][j]=0;else map[i][j]=++point;}char c;scanf("%c",&c);}for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(map[i][j]>0) bfs(i,j);sort(v+1,v+1+tot,cmp);for(int i=1;i<=point;i++) fa[i]=i;for(int i=1;i<=tot;i++){int dx=find(v[i].x);int dy=find(v[i].y);if(dx==dy) continue;fa[dy]=dx;sum++;ans+=v[i].z;if(sum==point-1) break;}cout<<ans<<endl;ans=0;tot=0;sum=0;point=0;} }
转载于:https://www.cnblogs.com/cangT-Tlan/p/8463208.html
J - Borg Maze相关推荐
- 【POJ 3026】Borg Maze
[POJ 3026]Borg Maze 一个考察队搜索alien 这个考察队能够无限切割 问搜索到全部alien所须要的总步数 即求一个无向图 包括全部的点而且总权值最小(最小生成树 BFS+最小生成 ...
- Borg Maze最小生成树
Borg Maze 原题链接https://vjudge.net/contest/352170#problem/I 本题给出一个地图,以及各个点的位置,大概意思就是所有点全部链接的最短路径,使用bfs ...
- Borg Maze (最小生成树+bfs)
Borg Maze 题目描述: The Borg is an immensely powerful race of enhanced humanoids from the delta quadrant ...
- (POJ 3026) Borg Maze 最小生成树+bfs
题目链接:http://poj.org/problem?id=3026. DescriptionThe Borg is an immensely powerful race of enhanced h ...
- 【POJ - 3026】Borg Maze(bfs预处理 + 最小生成树,建图)
题干: The Borg is an immensely powerful race of enhanced humanoids from the delta quadrant of the gala ...
- (最小生成树) Borg Maze -- POJ -- 3026
链接: http://poj.org/problem?id=3026 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82831#probl ...
- 一道神坑题 POJ3026 Borg Maze BFS+prim算法
题意不说 附上链接 http://poj.org/problem?id=3026 反正先用BFS搜一遍图 记录 S和A之间的路 用一个二维数组存储 (注意 把每个S或者A 都搜一遍) 好了 剩下的就是 ...
- poj 3026 Borg Maze (最小生成树+bfs)
有几个错误,调试了几个小时,样例过后 1Y. 题目:http://poj.org/problem?id=3026 题意:就是让求A们和S的最小生成树 先用bfs找每两点的距离,再建树.没剪枝 63MS ...
- Borg Maze POJ - 3026 (BFS + 最小生成树)
题意: 求把S和所有的A连贯起来所用的线的最短长度... 这道题..不看discuss我能wa一辈子... 输入有坑... 然后,,,也没什么了...还有注意 一次bfs是可以求当前点到所有点最短距离 ...
最新文章
- python买什么书-有什么关于python的书值得阅读?
- 模型剖析 | 如何解决业务运维的四大难题?
- PHP使用PDO方式的经验总结:连接 增删改查
- MySQL数据库常见的几个问题
- C++语言基础 —— STL —— 容器与迭代器 —— heap
- FastJSON、Gson和Jackson性能对比
- vonic 环境配置_Vonic 2.0 全新文档站上线
- 基于GitHub创建自己的个人网站
- 面试问题记录 2019.3.22(中国铁道科学研究院)
- 基于HTML5的iPad电子杂志横竖屏自适应方案
- web开发时碰到的问题以及心得经验
- html微信窗口阻止滚动条,微信浏览器禁止页面下拉查看网址(不影响页面内部scroll)...
- 《21天学通Java(第6版)》—— 1.10 练习
- 【新书推荐】【2018.07】计算电磁学的MATLAB仿真(第四版)
- ABBYY软件的OCR文字识别工具有什么用
- Excel查看工作表有多少列
- 企业python面试题
- (个人翻译)Scrivener交互式手册中文版FowWindows 03基础操作
- 计算机毕业设计之java+ssm学生网上请假系统
- Linux-常用快捷键
热门文章
- r语言转化为python_数值型与字符型转换总结|R语言
- pyplot绘制图片_matplotlib系列之pyplot
- mysql动态sql是什么,mysql中动态sql的一次实际应用
- 开课吧java_开课吧javaee企业级开发工程师 十期
- android横向展示状态,【报Bug】Android横屏状态下启动App,即使在App.vue中锁定竖屏,但是首页nvue中的rpx单位是按照启动的横竖屏状态显示的!...
- python与tensorflow知识点截图集锦(持续囤积)
- ruby array_Ruby中带有示例的Array.select方法
- java中intvalue_Java Number intValue()方法与示例
- C++---两数之和
- 博客上一些项目相关源码链接