码迷,mamicode.com
首页 > 其他好文 > 详细

食物链--poj1182

时间:2015-07-26 15:38:43      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

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

 

题意应该就不用说了,关系之间的解释看大神的吧http://www.cnblogs.com/wuyiqi/archive/2011/08/24/come__in.html

 

#include<stdio.h>

const int maxn = 100005;

int f[maxn], r[maxn];//r[i]代表i与根节点之间的关系,0代表同类,1代表x吃y;2代表x被y吃;

int Find(int x)
{
    int k = f[x];
    if(f[x] != x)
    {
        f[x] = Find(f[x]);
        r[x] = (r[k]+r[x])%3;
    }

    return f[x];
}

int main()
{
    int i, N, T, ans=0;

    scanf("%d%d", &N, &T);

    for(i=0; i<=N; i++)
    {
        f[i] = i;
        r[i] = 0;
    }

    while(T--)
    {
        int x, y, d;

        scanf("%d%d%d", &d, &x, &y);

        int rx = Find(x), ry = Find(y);

        if(x>N || y>N || (d==2&&x==y) )
            ans++;
        else if(rx == ry && (r[y]+d-1)%3 != r[x])
            ans++;
        else if(rx != ry)
        {
            f[rx] = ry;
            r[rx] = ((d-1)-r[x]+r[y]+3)%3;
        }
    }

    printf("%d\n", ans);

    return 0;
}

 

食物链--poj1182

标签:

原文地址:http://www.cnblogs.com/zhengguiping--9876/p/4677668.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!