poj 1258 Agri-Net(最小生成树模板代码)
来源:互联网 发布:软件欢迎界面 素材 编辑:程序博客网 时间:2024/04/27 19:10
感觉用这题来当模板更适合。
题意就是给你邻接矩阵求最小生成树啦。~
prim代码:效率很高。172k...0ms。
#include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;const int INF = 0x3f3f3f3f;int g[MaxN][MaxN];int n;int prim(){ bool vis[MaxN]; int dis[MaxN]; int res = 0; for(int i = 1; i <= n; i++) { vis[i] = false; dis[i] = INF; } dis[1] = 0; vis[1] = true; int mark = 1; for(int i = 1; i < n ; i++) { for(int j = 1; j <= n; j++) { if(!vis[j] && dis[j] > g[mark][j]) { dis[j] = g[mark][j]; } } int mindis = INF; for(int j = 1; j <= n; j++) { if(!vis[j] && mindis > dis[j]) { mindis = dis[j]; mark = j; } } vis[mark] = true; res += mindis; } return res;}int main(){ while(scanf("%d", &n)!=EOF) { for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { scanf("%d", &g[i][j]); } } int ans = prim(); printf("%d\n", ans); } return 0;}
kruscal代码:效率偏低了,还WA了一发。252k...16ms
#include<stdio.h>#include<algorithm>using namespace std;const int MaxN = 101;int n, p;int fa[MaxN];struct edge{ int x, y, w; bool operator<(const edge &b)const { return w < b.w; }} e[MaxN * MaxN];int find(int x){ if(fa[x] != x) fa[x] = find(fa[x]); return fa[x];}int kruscal(){ int res = 0; sort(e, e + p); for(int i = 1; i <= n; i++)//!注意这个地方,根节点的存储。 fa[i] = i; for(int i = 0; i < p; i++) { int t1 = find(e[i].x); int t2 = find(e[i].y); if(t1 != t2) { fa[t2] = t1; res += e[i].w; } } return res;}int main(){ while(scanf("%d", &n)!=EOF) { p = 0; for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { scanf("%d", &e[p].w); e[p].x = i; e[p].y = j; p++; } } int ans = kruscal(); printf("%d\n", ans); } return 0;}
0 0
- poj 1258 Agri-Net(最小生成树模板代码)
- POJ 1258:Agri-Net Prim最小生成树模板题
- poj 1258 Agri-Net ( 最小生成树[模板题]--prim )
- poj 1258 Agri-Net 最小生成树模板
- POJ 1258 Agri-Net(最小生成树)
- POJ 1258 Agri-Net 【最小生成树】
- Agri-Net - POJ 1258 最小生成树
- POJ 1258 Agri-Net 最小生成树
- POJ 1258 Agri-Net(最小生成树)
- POJ 1258 Agri-Net 最小生成树
- POJ 1258 Agri-Net 最小生成树
- poj 1258 Agri-Net(最小生成树)
- poj 1258 Agri-Net 最小生成树
- Poj 1258 Agri-Net【最小生成树】
- poj 1258 Agri-Net 最小生成树
- POJ 1258Agri-Net 最小生成树
- POJ 1258 :Agri-Net(最小生成树)
- POJ 1258 Agri-Net (最小生成树)
- 2014科目三大路考各项目操作要求
- SpringMVC学习历程--前言(水一发)
- 解读物联网的三个理解误区
- 提交表单等总结
- eclipse java ee开发jsp页面需要依赖java project文件时候的JEE Module Dependencies设置
- poj 1258 Agri-Net(最小生成树模板代码)
- springMVC + ajaxfileupload异步上传图片预览,裁剪并保存图片
- 科目三路考流程及注意事项
- 基于ocfs2内核代码的个人理解(一)
- ajaxfileupload对于json格式处理的问题(firefox、ie)
- 科目三靠边停车驾驶流程
- 【读书笔记】iOS6编程实战 8绘图功能1
- Cookie 的使用
- 科目三电子路考易错细节总结