usaco Chapter 3 section 3.1 Agri-Net
来源:互联网 发布:魔幻视频特效软件 编辑:程序博客网 时间:2024/05/10 16:22
/*
ID: niepeng1
LANG: C++
TASK:agrinet
*/
#include <iostream>
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;
#define Max1 101
int map[Max1][Max1];
struct Node{
int fro;
int to;
int val;
};
Node edge[Max1*Max1];
int cond[Max1];
int num,knum;
int total=0;
int cmp(const Node & a,const Node & b){return a.val>b.val;}
void Krustal()
{
int i,k,j;
int start=0,tem;
for(k=0;k<num-1;k++){
make_heap(edge+start,edge+knum,cmp);
for(i=start;i<knum;i++){
if( cond[edge[i].fro] != cond[edge[i].to] || (cond[edge[i].fro]==-1 && cond[edge[i].to]==-1))
break;
}
total+=edge[i].val;
if(edge[i].fro > edge[i].to)//fro 大 将被覆盖
{
tem=cond[edge[i].fro];
if(cond[edge[i].to]==-1)
cond[edge[i].to]=edge[i].to;
cond[edge[i].fro]=cond[edge[i].to];
if(tem != -1)
for(j=0;j<num;j++)
{
if(cond[j] == tem)
cond[j]=cond[edge[i].to];
}
}
else
{
tem=cond[edge[i].to];//to是较大的
if(cond[edge[i].fro]==-1)
cond[edge[i].fro]=edge[i].fro;
cond[edge[i].to]=cond[edge[i].fro];
if(tem != -1)
for(j=0;j<num;j++)
{
if(cond[j]==tem)
cond[j]=cond[edge[i].fro];
}
}
start=i+1;
}
}
int main()
{
FILE *in,*out;
int i,j,tem;
in=fopen("agrinet.in","r");
out=fopen("agrinet.out","w");
knum=0;
fscanf(in,"%d",&num);
for(i=0;i<num;i++)
for(j=0;j<num;j++){
fscanf(in,"%d",&tem);
map[i][j]=tem;
if( tem!=0)
{
edge[knum].fro=i;
edge[knum].to=j;
edge[knum].val=tem;
knum++;
}
cond[i]=-1;
}
Krustal();
fprintf(out,"%d/n",total);
// for(i=0;i<k;i++)
// cout<<edge[i].val<<' ';
fclose(in);
fclose(out);
return 0;
}
- usaco Chapter 3 section 3.1 Agri-Net
- USACO-Section 3.1-PROB Agri-Net
- USACO section 3.1 Agri-Net(最小生成树,prim)
- USACO Section 3.1 Agri-Net(最小生成树Prime算法)
- USACO-Section 3.1 Agri-Net(最小生成树[Prim])
- usaco Chapter 3 section 3.1 Humble Numbers
- usaco Chapter 3 section 3.1 Score Inflation
- usaco Chapter 3 section 3.1 Shaping Regions
- usaco Chapter 3 section 3.1 Contact
- usaco Chapter 3 section 3.1 Stamps
- USACO 3.1 Agri-Net
- usaco 3.1 Agri-Net
- USACO Section 3.1 Agri-Net - [水]最小生成树模板题
- 最小生成树基础模板题(USACO Training Section 3.1 最短网络 Agri-Net)
- Usaco 3.1Agri-Net(MST)
- USACO 3.1 Agri-Net (agrinet)
- usaco Chapter 3 section 3.2 Factorials
- usaco Chapter 3 section 3.2 Stringsobits
- 我的博客
- LightBox当前页特效显示图片
- openSession与getCurrentSession的区别
- Go 编程语言入门教程 (一)
- pku 1083(DP)
- usaco Chapter 3 section 3.1 Agri-Net
- NET(C#)连接各类数据库-集锦 --【C#网文收集系列】.
- Inner Join 与 Exists 性能对比
- 十条css技巧
- 未婚先性会带给女人严重后果
- 富滇银行 Windows7 无法使用U盾【证书信息读取失败,请选择正确的富滇银行网银证书!】 解决办法
- 认识程序集
- Software 需求分析文档格式
- C#基础概念二十五问 --【C#网文收集系列】