题意:输入一个天平(二叉树),以先序方式递归输入。判断天平力矩是否平衡。
思路:递归输入。这题就是练习递归输入的,输入的时候每个节点计算一次是否平衡,只要有不平衡的节点,天平就是不平衡的。
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <iomanip>
#include <cstdlib>
#include <string>
#include <memory.h>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <ctype.h>
#define INF 1000000010
#define ll long long
#define max3(a,b,c) max(a,max(b,c))
#define MAXN 1000
using namespace std;
bool ok;
int input(){
int wl,dl,wr,dr;
scanf("%d%d%d%d",&wl,&dl,&wr,&dr);
if(wl==0)wl+=input();
if(wr==0)wr+=input();
if(wl*dl!=wr*dr){
ok=false;
}
return wl+wr;
}
int main(){
int t;
cin>>t;
while(t--){
ok=true;
input();
if(ok){
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
if(t)cout<<endl;
}
return 0;
}
本文探讨了如何使用递归来输入并判断二叉树(天平)的力矩平衡情况,通过实例展示了递归算法在解决实际问题中的应用。
589

被折叠的 条评论
为什么被折叠?



