Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:第一次krustal,一次A,留代码做纪念In Reply To:第一次krustal,一次A,留代码做纪念 Posted by:sunyi740 at 2016-03-29 22:14:48 > #include<iostream> > #include<cstdlib> > using namespace std; > int n,k; > struct edge > { > int u; > int v; > int w; > }; > edge p[500*500]; > > int cmp(const void *a,const void *b) > { > edge *p1=(edge *)a; > edge *p2=(edge *)b; > return p1->w-p2->w; > } > > void kruskal() > { > int flag[500]; > for(int i=1;i<=n;i++) > flag[i]=i; > qsort(p,k,sizeof(edge),cmp); > int maxn=0; > for(int i=1;i<=k;i++) > { > if(flag[p[i].u]!=flag[p[i].v]) > { > int t=flag[p[i].u]; > for(int j=1;j<=n;j++) > if(flag[j]==t) flag[j]=flag[p[i].v]; > if(p[i].w>maxn) maxn=p[i].w; > > //cout<<i<<' '<<maxn<<endl; > } > } > cout<<maxn<<endl; > } > > > int main() > { > int m; > cin>>m; > while(m--) > { > cin>>n; > k=0; > for(int i=1;i<=n;i++) > for(int j=1;j<=n;j++) > { > k++; > p[k].u=i; > p[k].v=j; > cin>>p[k].w; > } > kruskal(); > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator