poj1258 最小生成树裸题 给个模板看就行了
来源:互联网 发布:青岛知行国际诈骗 编辑:程序博客网 时间:2024/06/05 05:33
直接给你邻接矩阵,一定是稠密图,所以优先选择pirm。
然后AC代码:
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>using namespace std;const int maxn=1e3+10;const int inf=0x3f3f3f3f;int mp[maxn][maxn];int dis[maxn];int N;bool in[maxn];int prim(){ memset(in,0,sizeof(in)); for(int i=1;i<=N;i++) dis[i]=mp[1][i]; in[1]=1; int ans=0; for(int i=2;i<=N;i++) { int minn=inf,r; for(int j=1;j<=N;j++) { if(!in[j]&&minn>dis[j]) { minn=dis[j]; r=j; } } ans+=minn; in[r]=1; for(int j=1;j<=N;j++) if(!in[j]&&dis[j]>mp[r][j]) dis[j]=mp[r][j]; } return ans;}int main(){ while(scanf("%d",&N)==1&&N) { for(int i=1;i<=N;i++) for(int j=1;j<=N;j++) scanf("%d",&mp[i][j]); printf("%d\n",prim()); }}
要输出的是所要的边的总和。
和dijstra很像只不过dis数组意义不一样,所以松弛那块地方也不一样。
阅读全文
0 0
- poj1258 最小生成树裸题 给个模板看就行了
- POJ1258-最小生成树-kruskal模板
- 【POJ1258】【最小生成树水题】
- POJ1258->最小生成树
- POJ1258-最小生成树水题
- poj1258 最小生成树
- poj1258(最小生成树)
- 最小生成树 简单模板题 POJ1251&&POJ1258
- poj1258 Agri-Net 最小生成树 prim kruskal 模板
- 最小生成树模板克鲁斯卡尔poj1258
- poj1258 最小生成树krus
- poj1258 prim最小生成树
- poj1258 最小生成树 普林姆
- POJ1258 基础最小生成树
- POJ1258简单最小生成树
- poj1258 prim最小生成树
- poj1258(最小生成树)
- poj1258(最小生成树Kruscal)
- LINUX基本命令
- VMware workstation批量创建虚拟机和自动化安装操作系统(一)
- log4j2 strLookup
- C语言中可变参数的函数
- 查看机器端口占用情况
- poj1258 最小生成树裸题 给个模板看就行了
- 浅谈session和cookie的异同点
- [Python]与shell交互
- coursera《机器学习》吴恩达-week1-01 课程介绍
- 2017.8.10 mqtt 升级代码熟悉
- vmmap工具实现
- 使用Python调试器pdb调试程序(mac)
- 设计模式-装饰模式
- inflate的使用