zoukankan      html  css  js  c++  java
  • UVA 839 Not so Mobile

    UVA_839

        这个题目虽然是树的结构,但我们可以不必把树的结构建立起来,因为后面可以不必再遍历树了,读入数据的过程本身就是一个遍历树的过程,在这个过程中可以把每个节点的权值计算出来,之后就只需要扫描一遍所有节点,看节点两端是否力矩平衡即可。

    #include<stdio.h>
    #include<string.h>
    #define MAXD 1000010
    int size, wl[MAXD], wr[MAXD], dl[MAXD], dr[MAXD], d[MAXD], ok;
    int dfs()
    {
    int k;
    ++ size;
    k = size;
    scanf("%d%d%d%d", &wl[k], &dl[k], &wr[k], &dr[k]);
    if(wl[k] == 0)
    wl[k] = dfs();
    if(wr[k] == 0)
    wr[k] = dfs();
    if(wl[k] * dl[k] != wr[k] * dr[k])
    ok = 0;
    return wl[k] + wr[k];
    }
    void solve()
    {
    int i;
    size = 0;
    ok = 1;
    dfs();
    if(ok)
    printf("YES\n");
    else
    printf("NO\n");
    }
    int main()
    {
    int t, tt;
    scanf("%d", &t);
    for(tt = 0; tt < t; tt ++)
    {
    if(tt)
    printf("\n");
    solve();
    }
    return 0;
    }



  • 相关阅读:
    暴力程序之回文子串
    关于取消同步带来问题的样例
    JavaScript之Date
    JavaScript之array
    智破连环阵
    超长数字串
    无向图最短路径
    扫雷
    n!最末尾非0数
    计算程序运行时间
  • 原文地址:https://www.cnblogs.com/staginner/p/2306568.html
Copyright © 2011-2022 走看看