zoukankan      html  css  js  c++  java
  • UVa 839 Not so Mobile

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

    学习的紫书:采用递归先序输入,每个天平的格式为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
    ",b1);
    18 //    printf("b2=%d
    ",b2);
    19 //    printf("w=%d
    ",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
    ");
    29         else printf("NO
    ");
    30         if(t) printf("
    ");
    31     }
    32     return 0;
    33 }
    View Code
  • 相关阅读:
    数据库设计三大范式
    MYSQL语句
    PHP数据库环境配置
    java空心菱形
    java基础练习2
    java基础练习
    java 控制台输入
    java 基础功能
    Java包装
    JS里的DOM操作注意点
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4337049.html
Copyright © 2011-2022 走看看