码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 839 Not so Mobile

时间:2015-03-14 10:49:34      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:

题意:给出一个树状天平,判断其是否平衡

学习的紫书:采用递归先序输入,每个天平的格式为w1,d1,w2,d2,当w1,w2为0的时候,输入的是一个子天平。

这样每当输入一个子天平的时候,返回子天平是否平衡,同时用的是&w值传递,每次调用solve函数,w的值也会改变,就一层一层子天平的判断

 

递归理解起来还是很吃力,然后手推了一下样例,然后又打印中间的值来看,稍微理解一丢丢了= =

技术分享
 1 #include<iostream>  
 2 #include<cstdio>  
 3 #include<cstring> 
 4 #include <cmath>   
 5 #include<algorithm>  
 6 using namespace std;
 7 
 8 typedef long long LL;
 9 
10 bool solve(int &w){
11     int w1,w2,d1,d2;
12     bool b1=true,b2=true;
13     cin>>w1>>d1>>w2>>d2;
14     if(!w1) b1=solve(w1);
15     if(!w2) b2=solve(w2);
16     w=w1+w2;
17 //    printf("b1=%d\n",b1);
18 //    printf("b2=%d\n",b2);
19 //    printf("w=%d\n",w);
20     return b1&&b2&&(w1*d1==w2*d2);
21 }
22 
23 int main()
24 {
25     int t,w;
26     cin>>t;
27     while(t--){
28         if(solve(w)) printf("YES\n");
29         else printf("NO\n");
30         if(t) printf("\n");
31     }
32     return 0;
33 }
View Code

 

UVa 839 Not so Mobile

标签:

原文地址:http://www.cnblogs.com/wuyuewoniu/p/4337049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!