POJ 1258

原创 2016年08月31日 03:47:43

题意:给一个n*n的矩阵 ,矩阵map[i][j]代表i农田和j农田相连的花费,选择一些城市相连,使得从任意一个城市出发都可以到达任意城市,要求这些路的花费总和最小

思路:一个裸的最小生成树,prim

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
const int qq=105;
int map[qq][qq];
int vis[qq];
int dis[qq];
int n;
int Prim()
{
	memset(vis,0,sizeof(vis));
	for(int i=1; i<=n; ++i)	dis[i]=map[1][i];
	vis[1]=1;
	int minx,k;
	int ans=0;
	for(int i=1; i<n; ++i){
		minx=1e8+5;
		for(int j=1; j<=n; ++j)
			if(!vis[j] && dis[j]<minx)
				minx=dis[k=j];
		ans+=minx;
		vis[k]=1;
		for(int j=1; j<=n; ++j)
			if(!vis[j] && map[k][j]<dis[j])
				dis[j]=map[k][j];
	}
	return ans;
}
int main()
{
	while(scanf("%d",&n)!=EOF){
			for(int j,i=1; i<=n; ++i)
				for(j=1; j<=n; ++j)	scanf("%d",&map[i][j]);
		int ans=Prim();
		printf("%d\n",ans);
	}
	return 0;
}


版权声明:吸猫大法、

最小生成树-两种算法复杂度比较 poj-1258,2485

1.Prim算法 时间是复杂度O(n2),适合稠密图。 例:Poj–1258 题目大意:n个城市建造光缆,要使这些城市直接通信,并且光缆费用最小。 #include #include #de...
  • jichangzhen
  • jichangzhen
  • 2016年08月20日 11:37
  • 1142

POJ 1258 解题报告

这道题是实现最小生成树。我用的时kruskal的方法,用到了union-find算法(ui)。...
  • thestoryofsnow
  • thestoryofsnow
  • 2014年11月15日 07:11
  • 415

POJ——1258(最小生成树)

题目地址:http://poj.org/problem?id=1258 注:Prime和kruskal都可以(kruskal需要进行转换)。 一、kruskal   //要用到并查集 #include...
  • shenqixiaojiang
  • shenqixiaojiang
  • 2013年07月28日 10:08
  • 378

poj 1258 最小生成树

D -Agri-Net 提交状态实践POJ 1258 描述 农民约翰已经当选市长的城市! 他的竞选承诺之一就是把网络连接中的所有农场地区。 当然,他需要你的帮助。 农民约翰下令...
  • yanhuo0414
  • yanhuo0414
  • 2016年04月13日 21:23
  • 178

POJ 1258 最小生成树

思路:求最小生成树无非是两种思路,用prim()算法或者克鲁斯算法。prim算法就是对一棵先拆成每个独立的点,随便找到一个点,然后比较与该点相连的所有点中权值最小的,然后把该权值加入到一个用来你保存最...
  • OnePiece_only
  • OnePiece_only
  • 2016年10月27日 23:27
  • 123

poj 1258(最小生成树)

光纤架设 Description Farmer John has been elected mayor of his town! One of his campaign promises was t...
  • juanlansexuehua
  • juanlansexuehua
  • 2017年03月08日 19:06
  • 60

POJ 1258 城市的道路建设

都是套路,换题不换意 Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 51655   Acce...
  • major_zhang
  • major_zhang
  • 2016年08月02日 17:39
  • 532

【POJ】1258 - Agri-Net(克鲁斯塔尔)(水)

Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 47991   Acce...
  • wyg1997
  • wyg1997
  • 2016年02月20日 18:07
  • 199

每日一题(5)poj,1258, AgriNet

1.      题目很简单,直接的最小生成树。一次ac。296K     47MS        2.      感觉自己需要练练别的方法。prim算是很熟悉了。 3.      还是不要忘了吧...
  • kaka0930
  • kaka0930
  • 2016年11月16日 11:12
  • 92

POJ 1258 Agri-Net(最小生成树)

Agri-Net Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 51740   Accepted: 21580 ...
  • shyazhut
  • shyazhut
  • 2016年08月04日 15:12
  • 122
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1258
举报原因:
原因补充:

(最多只允许输入30个字)