并查集关押罪犯

Posted accpted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并查集关押罪犯相关的知识,希望对你有一定的参考价值。

 

【并查集】关押罪犯

#include <bits/stdc++.h>

using namespace std;
const int maxn=20010;
const int maxm=100010;

struct node 
    int x,y,w;
    bool operator<(const node &b)const 
        return w>b.w;
    
a[maxm];

int f[maxn*2];
int n,m;

int getfa(int x) 
    return x == f[x] ? x : f[x] = getfa(f[x]);

void merge(int x,int y) 
    int xx = getfa(x), yy = getfa(y);
    if (xx != yy) f[xx] = y;

int main() 
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n * 2; i++) 
        f[i] = i;
    
    for (int i = 1; i <= m; i++) 
        scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].w);
    
    sort(a + 1, a + 1 + m);
    for (int i = 1; i <= m; i++) 
        if (getfa(a[i].x) == getfa(a[i].y)) 
            printf("%d\n", a[i].w);
            return 0;
        
        merge(a[i].x + n, a[i].y);
        merge(a[i].y + n, a[i].x);
    
    printf("0\n");

  

以上是关于并查集关押罪犯的主要内容,如果未能解决你的问题,请参考以下文章

[noip2010]关押罪犯 并查集

并查集关押罪犯

P1525 关押罪犯 并查集

codevs1069关押罪犯(并查集)

洛谷P1525关押罪犯——并查集

Acwing 257. 关押罪犯 二分图 并查集