https://vjudge.net/problem/UVA-839
题意 就是说给一个天平 这个天平可能有子天平 要么左右子树都有 要么都没有 不存在只有一个的情况 那样就肯定不平衡了 给出w d(重量和中心距) 求是否平衡 按照先序的顺序给出 那么就可以用递归了
#include <set>
#include<iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
bool solve(int& w) {
int w1, d1, w2, d2;
bool b1 = true;
bool 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 << "\n";
}
return 0;
}







Comments | NOTHING