食物链

Posted aze-qwq

tags:

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

 

https://www.luogu.org/problemnew/show/P2024

#include<cstdio>
int f[50005];
int r[50005];
void init(int n){
    for(int x=1; x<=n; x++){
        f[x]=x; 
        r[x]=0;
    }
}
 int find(int x) {
    if(x==f[x]) return x;
     int t = f[x];
    f[x]=find(f[x]);
    r[x]=(r[x]+r[t])%3; 
    return f[x];
}
void merge(int x, int y, int d){
    int fx=find(x);
    int fy=find(y);
     f[fy]=fx; 
    r[fy]=(r[x]-r[y]+3+(d-1))%3; 
}
int main(){
    int n, m;
    scanf("%d%d", &n, &m);
    init(n);
     int ans=0;
    int d, x, y;
    while(m--){
        scanf("%d%d%d", &d, &x, &y);
        if(x>n || y>n || (d==2 && x==y)) ans++;
         else if(find(x)==find(y)) {
            if(d==1 && r[x]!=r[y]) ans++; 
            if(d==2 && (r[x]+1)%3!=r[y]) ans++; 
        }
        else merge(x, y, d); 
    }
    printf("%d
", ans);
    return 0;
}

 

以上是关于食物链的主要内容,如果未能解决你的问题,请参考以下文章

带权并查集(含种类并查集)经典模板 例题:①POJ 1182 食物链(经典)②HDU - 1829 A bug's life(简单) ③hihoCoder 1515 : 分数调查(示例代码(代

HAOI2016食物链

食物链测试报告

POJ1182 食物链

poj1182 食物链

洛谷P2024 食物链