首页 > 代码库 > UVa 839 (递归方式读取二叉树) Not so Mobile
UVa 839 (递归方式读取二叉树) Not so Mobile
题意:
递归的方式输入一个树状天平(一个天平下面挂的不一定是砝码还可能是一个子天平),判断这个天平是否能满足平衡条件,即W1 * D1 == W2 * D2.
递归的方式处理输入数据感觉很巧妙,我虽然能理解,但自己是写不出来的。
这里的参数是传引用,所以是在递归回来的时候才会赋值的。
1 //#define LOCAL 2 #include <iostream> 3 using namespace std; 4 5 bool solve(int& w) 6 { 7 int w1, d1, w2, d2; 8 bool ok1 = true, ok2 = true; 9 cin >> w1 >> d1 >> w2 >> d2;10 if(!w1) ok1 = solve(w1);11 if(!w2) ok2 = solve(w2);12 w = w1 + w2;13 return ok1 && ok2 && (w1*d1 == w2*d2);14 }15 16 int main(void)17 {18 #ifdef LOCAL19 freopen("839in.txt", "r", stdin);20 #endif21 22 int T, w;23 cin >> T;24 while(T--)25 {26 if(solve(w)) cout << "YES\n";27 else cout << "NO\n";28 if(T) cout << endl;29 }30 31 return 0;32 }
UVa 839 (递归方式读取二叉树) Not so Mobile
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。