Not so Mobile UVA

来源:互联网 发布:怕死 陈奕迅 知乎 编辑:程序博客网 时间:2024/06/03 20:35

问题类型:树,递归输入。

03pie’s solution for [UVA-839]:
问题链接

#include<bits/stdc++.h>using namespace std;bool solve(int& W){    int W1,D1,W2,D2;    bool b1=true,b2=true;    cin>>W1>>D1>>W2>>D2;    if(!W1) b1=solve(W1);    if(!W2) b2=solve(W2);    W=W1+W2;    return b1&&b2&&(W1*D1==W2*D2);}int main(){    int T,W;     cin>>T;    while(T--){        if(solve(W))    cout<<"YES\n";        else    cout<<"NO\n";        if(T)   cout<<endl;     }    return 0;}

多说的话:
本题代码特别精简,理解起来需要一点时间,首先对于题中的输入以W表示的总重量开始,使用引用的办法,对子天平天平进行每次的递归输入并且判断,AC的条件是任何的子结构中天平必须平衡,但是很容易想到其实天平平衡的条件只需要根节点平衡就可以了,这道题应该叫做“完全平衡天平”,哈哈~

0 0
原创粉丝点击