UVa 839 Not so Mobile
2015-03-14 09:44
381 查看
题意:给出一个树状天平,判断其是否平衡
学习的紫书:采用递归先序输入,每个天平的格式为w1,d1,w2,d2,当w1,w2为0的时候,输入的是一个子天平。
这样每当输入一个子天平的时候,返回子天平是否平衡,同时用的是&w值传递,每次调用solve函数,w的值也会改变,就一层一层子天平的判断
递归理解起来还是很吃力,然后手推了一下样例,然后又打印中间的值来看,稍微理解一丢丢了= =
View Code
学习的紫书:采用递归先序输入,每个天平的格式为w1,d1,w2,d2,当w1,w2为0的时候,输入的是一个子天平。
这样每当输入一个子天平的时候,返回子天平是否平衡,同时用的是&w值传递,每次调用solve函数,w的值也会改变,就一层一层子天平的判断
递归理解起来还是很吃力,然后手推了一下样例,然后又打印中间的值来看,稍微理解一丢丢了= =
#include<iostream> #include<cstdio> #include<cstring> #include <cmath> #include<algorithm> using namespace std; typedef long long LL; bool solve(int &w){ int w1,w2,d1,d2; bool b1=true,b2=true; cin>>w1>>d1>>w2>>d2; if(!w1) b1=solve(w1); if(!w2) b2=solve(w2); w=w1+w2; // printf("b1=%d\n",b1); // printf("b2=%d\n",b2); // printf("w=%d\n",w); return b1&&b2&&(w1*d1==w2*d2); } int main() { int t,w; cin>>t; while(t--){ if(solve(w)) printf("YES\n"); else printf("NO\n"); if(t) printf("\n"); } return 0; }
View Code
相关文章推荐
- UVA 839 Not so Mobile(二叉树经典题)
- uva 839 - Not so Mobile
- uva-839 Not so Mobile
- UVA 839 Not so Mobile (贪心)
- UVA839 - Not so Mobile
- UVA 839 - Not so Mobile
- UVA 839 Not so Mobile
- Not so Mobile UVA 839
- uva 839 not so mobile——yhx
- uva 839 Not so Mobile
- UVa839 Not so Mobile
- UVA - 839 Not so Mobile
- UVA839 - Not so Mobile
- uva 839 Not so Mobile-S.B.S.
- UVA 839 - Not so Mobile
- uva 839 not so mobile——yhx
- uva 839 Not so Mobile
- UVa 839 - Not so Mobile
- UVA-839 Not so Mobile
- UVA - 839 Not so Mobile