poj 1258 最小生成树 模板
POJ 最小生成树模板
Kruskal算法 #include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#include<limits.h>
#include<math.h>
#include<queue>
#include<stack>
#define max(a, b) a>b?a:b;
#define min(a, b) a<b?a:b;
using namespace std;
const int N = ; typedef struct rode
{
int x, y, l;
} RODE;
RODE maps[N];
int f[N]; int cmp(const void *a, const void *b)
{
RODE *c, *d;
c=(RODE *)a;
d=(RODE *)b;
return c -> l - d -> l;
} void Kruskal(int k);
int Find(int x); int main()
{
int n, i, j, k, a;
while(scanf("%d", &n)!=EOF)
{
k=;
for(i=; i<n; i++)
{
f[i]=i;
}
for(i=; i<n; i++)
for(j=; j<n; j++)
{
scanf("%d", &a);
maps[k].x=i;
maps[k].y=j;
maps[k].l=a;
k++;
}
qsort(maps, k, sizeof(maps[]), cmp);
Kruskal(k);
}
return ;
}
void Kruskal(int k)
{
int ans=;
for(int i=; i<k; i++)
{
int ru=Find(maps[i].x);
int rv=Find(maps[i].y);
if(ru!=rv)
{
f[ru]=rv;
ans+=maps[i].l;
}
}
printf("%d\n", ans);
}
int Find(int x)
{
if(f[x]!=x)
f[x]=Find(f[x]);
return f[x];
} 另一种 prim算法 和dijkstra算法很像 #include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm> using namespace std; int Map[][];
const int oo=0xfffffff;
int visit[];
int dist[];
int prim(int s,int n)
{
int ans=;
memset(visit,,sizeof(visit));
for(int i=; i<=n; i++)
dist[i]=Map[s][i];
visit[s]=;
for(int i=; i<n; i++)
{
int index;
int Min=oo;
for(int j=; j<=n; j++)
{
if(!visit[j]&&dist[j]<Min)
{
index=j;
Min=dist[j];
}
}
ans+=Min;
visit[index]=;
for(int j=; j<=n; j++)
{
if(!visit[j]&&dist[j]>Map[index][j])
{
dist[j]=Map[index][j];
}
} }
return ans;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
Map[i][j]=oo;
}
} for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
{
scanf("%d",&Map[i][j]);
}
}
printf("%d\n",prim(,n));
}
return ;
}
poj 1258 最小生成树 模板的更多相关文章
- POJ 1258 最小生成树
23333333333 完全是道水题.因为是偶自己读懂自己做出来的..T_T.prim的模板题水过. DESCRIPTION:John竞选的时候许诺会给村子连网.现在给你任意两个村子之间的距离.让你求 ...
- poj 1251 poj 1258 hdu 1863 poj 1287 poj 2421 hdu 1233 最小生成树模板题
poj 1251 && hdu 1301 Sample Input 9 //n 结点数A 2 B 12 I 25B 3 C 10 H 40 I 8C 2 D 18 G 55D 1 E ...
- 最小生成树 10.1.5.253 1505 poj 1258 http://poj.org/problem?id=1258
#include <iostream>// poj 1258 10.1.5.253 1505 using namespace std; #define N 105 // 顶点的最大个数 ( ...
- POJ 1258 + POJ 1287 【最小生成树裸题/矩阵建图】
Farmer John has been elected mayor of his town! One of his campaign promises was to bring internet c ...
- Poj 2187 凸包模板求解
Poj 2187 凸包模板求解 传送门 由于整个点数是50000,而求凸包后的点也不会很多,因此直接套凸包之后两重循环即可求解 #include <queue> #include < ...
- POJ 1258 Agri-Net|| POJ 2485 Highways MST
POJ 1258 Agri-Net http://poj.org/problem?id=1258 水题. 题目就是让你求MST,连矩阵都给你了. prim版 #include<cstdio> ...
- POJ-图论-最小生成树模板
POJ-图论-最小生成树模板 Kruskal算法 1.初始时所有结点属于孤立的集合. 2.按照边权递增顺序遍历所有的边,若遍历到的边两个顶点仍分属不同的集合(该边即为连通这两个集合的边中权值最小的那条 ...
- POJ 1258:Agri-Net Prim最小生成树模板题
Agri-Net Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45050 Accepted: 18479 Descri ...
- POJ 1258 Agri-Net(最小生成树,模板题)
用的是prim算法. 我用vector数组,每次求最小的dis时,不需要遍历所有的点,只需要遍历之前加入到vector数组中的点(即dis[v]!=INF的点).但其实时间也差不多,和遍历所有的点的方 ...
随机推荐
- IBM Security AppScan Glass Box:一种全新的漏洞扫描思想
IBM Security AppScan Glass Box:一种全新的漏洞扫描思想 Glass Box 是 IBM Security AppScan Standard Edition(以下简称 Ap ...
- webstore 与 热编译的配置冲突
这个勾去掉就会自动编译了!
- mysql中把字符串转成时间戳进行对比
::") ");
- jquery的find()
jQuery 遍历 - find() 方法 jQuery 遍历参考手册 实例 搜索所有段落中的后代 span 元素,并将其颜色设置为红色: $("p").find("sp ...
- [译]GLUT教程 - 移动镜头3
Lighthouse3d.com >> GLUT Tutorial >> Input >> Moving the Camera III 上一节的示例中我们用键盘更改 ...
- IOS设置图片背景
在UIViewController里面这样设置: self.view.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageN ...
- linux .vimrc的设置!
0.记得在配之前先下载vim.不同的版本下载vim使用不同命令 ubuntu使用sudo apt-get install vim 1.vi ~/.vimrc 打开当前用户下的vim的配置文件(修改完 ...
- 【Mac + Pycharm】之实用东西以及配置东西
一.新建.py文件时默认模板: 步骤:File => Preferences for New Projects => Editor => File and Code Template ...
- 【BZOJ4358】permu kd-tree
[BZOJ4358]permu Description 给出一个长度为n的排列P(P1,P2,...Pn),以及m个询问.每次询问某个区间[l,r]中,最长的值域连续段长度. Input 第一行两个整 ...
- wxwidget自定义消息处理步骤
from http://www.cppblog.com/kenlistian/archive/2009/02/06/73096.html 略有修改 wxwidget自定义消息处理步骤 自定义消息处理( ...