6-9 天平 uva839

这题十分巧妙!!代码精简!强大的递归!!!

边读边判断   先读到底部  慢慢往上判断   难点在于传递w1+w2

有一个比LRJ更加简便的方法  return传递  全局变量判断

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>

using namespace std;
int flag;

int dfs()
{
    int d1,w1,d2,w2;cin>>w1>>d1>>w2>>d2;
    if(!w1)w1=dfs();
    if(!w2)w2=dfs();
    if(w1*d1!=w2*d2)flag=0;

    return w1+w2;

}

int main()
{
    int n;cin>>n;
    while(n--)
    {
        flag=1;
        dfs();
        if(flag)printf("YES\n");else printf("NO\n");
        if(n)printf("\n");
    }

    return 0;
}

LRJ是return判断   引用来传递!  都很巧妙

原文地址:https://www.cnblogs.com/bxd123/p/10290064.html

时间: 2024-10-31 11:16:01

6-9 天平 uva839的相关文章

二叉树的递归遍历 天平UVa839

题意:输入一个树状的天平,利用杠杆原理,根据力矩是否相等(W1D1==W1D2)判断天平是否平衡 解题思路:1.由于判断天平是否平衡,当W1和W2都为0的时候,会先输入左子树,再输入右子树 2.此时的W1和W2会变成子树的重量之和,此时最好用到引用(同时改变传入参数的值) 3.递归的输入,并且判断子天平是否平衡 代码如下: 1 #include<stdio.h> 2 #include<iostream> 3 using namespace std; 4 bool input(int

题解[UVA839]天平 Not so Mobile

Description Input Output Examples Input 1 0 2 0 4 0 3 0 1 1 1 1 1 2 4 4 2 1 6 3 2 Output YES Translation 输入一个树状天平,根据力矩相等原则判断是否平衡. 采用递归(先序)方式输入:每个天平格式为\(W_l,D_l,W_r,D_r\),当\(W_l\)或\(W_r\)为\(0\)时,表示该"砝码"实际是一个子天平,接下来会描述这个子天平.当\(W_l=W_r=0\)时,会先描述左子天

6_9 天平(UVa839)&lt;二叉树的DFS&gt;

前一个ubiquous通信小工具,移动只是一个由弦和电线组成的结构五彩缤纷的东西.这种移动通常被发现悬挂在小婴儿的摇篮.图说明了一个简单的移动.它只是一个电线,悬挂的一个字符串,每一个对象的对象.它可以也被看作是一种杠杆的支点上的字符串的字符串联系的电线.从杠杆原理,我们知道,要平衡一个简单的移动的对象的重量的产品他们距离支点必须相等.这是WL×DL = WR×DR,DL是左边的距离DR是右边的距离,WL是左边的重量和WR是右边的重量.在一个更复杂的移动的对象可能被替换由一个子移动,如下图所示.

UVA - 12166 Equilibrium Mobile (修改天平)(dfs字符串表示的二叉树)

题意:问使天平平衡需要改动的最少的叶子结点重量的个数. 分析:天平达到平衡总会有个重量,这个重量可以由某个叶子结点的重量和深度直接决定. 如下例子: 假设根结点深度为0,结点6深度为1,若以该结点为基准(该结点值不变),天平要平衡,总重量是12(6 << 1),而若以结点3为基准,天平要平衡,总重量也是12(3 << 2). 由此可得,只需要算出以每个结点为基准的总重量,若该重量下对应的叶子结点最多,则使天平在此重量下平衡改变的叶子结点数最少. #pragma comment(li

UVa 12166 修改天平

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3318 题意:给一个深度不超过16的二叉树,代表一个天平.每根杆悬挂在中间,每个秤砣的重量已知,至少修改多少个秤砣的重量才能让天平平衡? 要让天平平衡,必须以其中一个秤砣作为标准,然后修改其余的秤砣.当以深度为d,值为x的叶子节点作为标准时,可以发现此时天平的总质量为x<<d.

bzoj:1673: [Usaco2005 Dec]Scales 天平

Description Farmer John has a balance for weighing the cows. He also has a set of N (1 <= N <= 1000) weights with known masses (all of which fit in 31 bits) for use on one side of the balance. He places a cow on one side of the balance and then adds

bzoj1673[Usaco2005 Dec]Scales 天平*

bzoj1673[Usaco2005 Dec]Scales 天平 题意: n个砝码,每个砝码重量大于前两个砝码质量和,天平承重为c,求天平上最多可放多种的砝码.n≤1000,c≤2^30. 题解: 斐波那契数列到30多项就爆int了,所以本题n其实≤30.故爆搜即可,加个剪枝:当前选的砝码质量和+剩下砝码质量和仍≤ans就返回. 代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #

bzoj1673:天平

1673: [Usaco2005 Dec]Scales 天平 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 391  Solved: 157[Submit][Status][Discuss] Description Farmer John has a balance for weighing the cows. He also has a set of N (1 <= N <= 1000) weights with known masses (al

poj1837--Balance(dp:天平问题)

Balance Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 10773   Accepted: 6685 Description Gigel has a strange "balance" and he wants to poise it. Actually, the device is different from any other ordinary balance. It orders two arms