Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
57319 季洁 最优布线问题 C++ 通过 100 3 MS 372 KB 550 2022-08-05 09:20:00

Tests(5/5):


#include<bits/stdc++.h> using namespace std; int n,xx,k,st[10010],ans,l; struct p{ int a,b,v; }edge[10010]; bool cmp(p x,p y){ return x.v<y.v; } int main(){ cin>>n; for(int i=1;i<=n;i++) st[i]=i; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cin>>xx; if(i!=j) edge[++k].a=i,edge[k].b=j,edge[k].v=xx; } } sort(edge+1,edge+n*n+1-n,cmp); for(int i=1;i<=n*n-n;i++){ k=edge[i].a,l=edge[i].b; while(st[k]!=k) k=st[k]; while(st[l]!=l) l=st[l]; if(k!=l) st[l]=k,ans+=edge[i].v; } cout<<ans; return 0; }


测评信息: