zoukankan      html  css  js  c++  java
  • 二叉树的递归遍历 天平UVa839

    题意:输入一个树状的天平,利用杠杆原理,根据力矩是否相等(W1D1==W1D2)判断天平是否平衡

    解题思路:1.由于判断天平是否平衡,当W1和W2都为0的时候,会先输入左子树,再输入右子树

    2.此时的W1和W2会变成子树的重量之和,此时最好用到引用(同时改变传入参数的值)

    3.递归的输入,并且判断子天平是否平衡

    代码如下:

     1 #include<stdio.h>
     2 #include<iostream>
     3 using namespace std;
     4 bool input(int &W){      //引用,改变传入参数的值
     5     int W1,W2,D1,D2;
     6     int b1=true;
     7     int b2=true;
     8     scanf("%d%d%d%d",&W1,&D1,&W2,&D2);
     9     if(W1==0){        //先左再右
    10         b1=input(W1);
    11     }
    12     if(W2==0){
    13         b2=input(W2);
    14     }
    15     W=W1+W2;
    16     return b1&&b2&&(W1*D1==W2*D2);
    17 }
    18 int main(){
    19     freopen("in.txt","r",stdin)
    20     int n,w;
    21     scanf("%d",&n);
    22     while(n--){
    23         if(input(w))
    24             printf("YES
    ");
    25         else
    26             printf("NO
    ");
    27         if(n)
    28             printf("
    ");
    29     }
    30     return 0;
    31 }
  • 相关阅读:
    不等式(一)-Markov与Chebyshev不等式
    决策树学习
    k-NN最近邻算法(k-nearest neighbors algorithm)
    梯度下降(Gradient Descent)数学原理分析与实例
    求解素数
    shell基础命令使用
    安装jenkins
    idea拉取git
    shell常用命令
    linux 安装jdk
  • 原文地址:https://www.cnblogs.com/muziqiu/p/7242380.html
Copyright © 2011-2022 走看看