• Uva 839 Not so Mobile


    题意:这是一个类似于树的天平,这个天平的每一端都有可能由一个子天平构成,而每个天平都满足一个公式 WL * DL = WR * DR,其中WL,WR分别代表左边和右边物品的重量,DL,DR分别代表左边和右边物品里天平中心的距离。

    输入分析:对于每个输入的四个数,如果WL或WR为0时,则代表接下来的输入代表子天平的数据,如果WL和WR同时为0,则输入数据先描述左子天平的状态,其次是右子天平。

    要求:判断该数据是否可以构成一个平衡的天平。

    思路:根据这个天平的描述,我很自然的想到了递归,有点类似于二叉树的后续遍历。对每一个子天平都需判断是否能够构成平衡,只要有一个不行,就需要输出“NO”;否则输出“YES”。

    /*
        UvaOJ 839
        Emerald
        Thu 28 May 2015
    */
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    
    using namespace std;
    
    bool isEqual; // means the status is equal
    
    int Moblie() {
    
        int leftWeight, leftDis, rightWeight, rightDis;
        scanf( "%d%d%d%d", &leftWeight, &leftDis, &rightWeight, &rightDis );
        leftWeight = leftWeight == 0 ? Moblie() : leftWeight;
        rightWeight = rightWeight == 0 ? Moblie() : rightWeight;
        if( leftWeight * leftDis != rightWeight * rightDis ) {
            isEqual = false;
        }
        return leftWeight + rightWeight;
    } // return the totalWeight
    
    int main() {
        int T;
        cin >> T;
        while( T -- ) {
            isEqual = true;
            Moblie();
            printf("%s
    ", isEqual ? "YES" : "NO" );
            if( T != 0 ) {
                printf("
    ");
            }
        }
        return 0;
    }
    
  • 相关阅读:
    Android-View动画
    Android-RemoteView-桌面小部件
    系统的Drawable(四)-LayerListDrawable
    Android-Drawable(三)
    系统的Drawable(二)-Selector
    系统的Drawable(一)
    Android View事件分发-从源码分析
    打游戏要存进度-备忘录模式
    Java 内部类.md
    docker 常用 命令
  • 原文地址:https://www.cnblogs.com/Emerald/p/4537084.html
Copyright © 2020-2023  润新知