POJ 1258 Agri-Net
来源:互联网 发布:java并发编程的书籍 编辑:程序博客网 时间:2024/05/03 13:27
题意:就是要你求最小生成树所需的最小距离
思路:Kruskal算法
AC代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 125000int u[N],v[N],w[N],r[N];int f[520],str[520][520];int find(int x){ if(x!=f[x]) f[x]=find(f[x]); return f[x];}int cmp(const int x,const int y) //间接排序距离{ return w[x]<w[y];}int main(){ int x,y,sum,e,i,j,n; while(scanf("%d",&n)!=EOF) { int cnt=0; memset(str,0,sizeof(str)); for(i=1;i<=n;i++) for(j=1;j<=n;j++) { int val; scanf("%d",&val); if(val==0) continue; if(!(str[i][j]&&str[j][i])) { u[cnt]=i; v[cnt]=j; w[cnt++]=val; str[i][j]=str[j][i]=1; } } for(i=0;i<=n;i++)f[i]=i; for(i=0;i<=cnt;i++)r[i]=i; sort(r,r+cnt,cmp); sum=0; for(i=0;i<=cnt;i++) { e=r[i]; x=find(u[e]); y=find(v[e]); if(x!=y){ sum+=w[e]; f[x]=y; } } printf("%d\n",sum); }}
0 0
- 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 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 1258 Agri-Net
- POJ 1258 - Agri-Net
- FreeBSD 平台 OpenVPN 的安装、配置客户端和服务端
- Unix/Linux环境C编程入门教程(35) 编程管理系统中的组
- 关于2011级报考高级中学教师资格证同学领取相关教材及培训的通知 笨木头-CSDN
- GCD 笔记
- 快速矩阵幂
- POJ 1258 Agri-Net
- HDU 4864 Task (2014多校联合训练第一场1004) 解题报告(贪心)
- HDOJ2010
- 暑期个人赛--第一场--B
- 图的拓扑排序与关键路径
- 博客程序开发历程【1】-[起始]{附源码}
- 3xian之所在
- 协程介绍
- Oracle数据库备份数据缺失的问题