您的位置:首页 > 其它

【BZOJ】【P3714】【PA2014】【Kuglarz】【题解】【最小生成树】

2014-09-25 18:39 344 查看
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3714

前缀和奇偶性

Code:

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e3+10;
struct edge{
int u,v,w;
bool operator<(const edge &E)const{
return w<E.w;
}
}edges[maxn*maxn];
int fa[maxn];
int find(int x){
if(fa[x]!=x)return fa[x]=find(fa[x]);
return x;
}
int n,m;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)fa[i]=i;
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
int x;
scanf("%d",&x);
edges[++m]=(edge){i-1,j,x};
}
}sort(edges+1,edges+1+m);
long long ans=0;
for(int i=1;i<=m;i++){
int u=edges[i].u,v=edges[i].v;
if(find(u)!=find(v)){
fa[find(u)]=find(v);
ans+=edges[i].w;
}
}cout<<ans<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bzoj