关押罪犯——大概可以称得上是巧用并查集吧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关押罪犯——大概可以称得上是巧用并查集吧相关的知识,希望对你有一定的参考价值。
两个监狱,1~n 是一个,n+1~2n 是另一个。
1 #include<algorithm> 2 #include<iostream> 3 #include<cstdio> 4 using namespace std; 5 const int N=40086,M=100086; 6 struct node{ 7 int x,y,v; 8 bool operator < (const node oth) const {return v>oth.v;} 9 }e[M]; 10 int n,m,fth[N]; 11 int fnd(int x){return x==fth[x]?x:fth[x]=fnd(fth[x]);} 12 int main(){ 13 for(int i=0;i<N;i++)fth[i]=i; 14 cin>>n>>m; 15 for(int i=1;i<=m;i++)scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].v); 16 sort(e+1,e+1+m); 17 for(int i=1;i<=m;i++){ 18 int u=fnd(e[i].x),v=fnd(e[i].y); 19 if(u==v){ 20 cout<<e[i].v<<endl; 21 return 0; 22 } 23 fth[u]=fnd(e[i].y+n); 24 fth[v]=fnd(e[i].x+n); 25 } 26 cout<<0<<endl; 27 return 0; 28 }
Vijos 165ms
以上是关于关押罪犯——大概可以称得上是巧用并查集吧的主要内容,如果未能解决你的问题,请参考以下文章