LYDSY 1202

题目大意

暂无

题目解法

暂无

RTFC

#include <cstdio>
int fa[105], s[105];
int Find(int x)
{
    if (fa[x] != x)
    {
        int fx = fa[x];
        fa[x] = Find(fa[x]);
        s[x] += s[fx];
    }
    return fa[x];
}
int main()
{
    int T;
    scanf("%d", &T);
    while (T--)
    {
        bool flag = true;
        int n, m;
        scanf("%d%d", &n, &m);
        for (int i = 0; i <= n; i++) fa[i] = i, s[i] = 0;
        for (int i = 0, x, y, z; i < m && flag; i++)
        {
            scanf("%d%d%d", &x, &y, &z);
            x--;
            int fx = Find(x), fy = Find(y);
            if (fx != fy)
            {
                fa[fx] = fy;
                s[fx] = s[y] - s[x] + z;
            }
            else if (s[x] - s[y] != z)
                flag = false;
        }
        puts(flag ? "true" : "false");
    }
    return 0;
}