zoukankan      html  css  js  c++  java
  • (并查集 建立关系)食物链 -- POJ-- 1182

    链接:

    http://poj.org/problem?id=1182

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#problem/E

    代码:

    #include<stdio.h>
    #include<queue>
    #include<stack>
    #include<string.h>
    using namespace std;
    
    #define maxn 100005
    #define oo 0xfffffff
    
    
    int n, T;
    int f[maxn], r[maxn];
    
    int Find(int x)
    {
        int k=f[x];
        if(f[x]!=x)
        {
            f[x]=Find(f[x]);
            r[x]=(r[x]+r[k])%3;
        }
        return f[x];
    }
    
    int main()
    {
        scanf("%d%d", &n, &T);
    
        int i, d, a, b, fa, fb, ans=0;
    
        for(i=1; i<=n; i++)
        {
            f[i]=i;
            r[i]=0;
        }
    
        while(T--)
        {
            scanf("%d%d%d",  &d, &a, &b);
            fa=Find(a), fb=Find(b);
    
            if(a>n || b>n || (d==2&&a==b))
                ans++;
            else if(fa==fb && (d-1+r[b])%3!=r[a])
                ans++;
            else if(fa!=fb)
            {
                f[fa]=fb;
                r[fa]=((d-1)-r[a]+r[b]+3)%3;
            }
        }
    
        printf("%d
    ", ans);
        return 0;
    }
    勿忘初心
  • 相关阅读:
    MLE
    AHOI/HNOI2018道路
    AHOI/HNOI2018排列
    推式子
    AHOI/HNOI2018游戏
    ! BJOI2018治疗之雨
    BJOI2018链上二次求和
    BJOI2018双人猜数游戏
    ! BJOI2018染色
    BJOI2018二进制
  • 原文地址:https://www.cnblogs.com/YY56/p/4735677.html
Copyright © 2011-2022 走看看