UVa 839 -- Not so Mobile(树的递归输入)

本文提供了一种解决UVa839NotsoMobile问题的方法,该问题涉及判断树状天平是否平衡。通过递归输入树结构,并使用C++实现算法来检查每个天平节点是否平衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UVa 839 Not so Mobile(树的递归输入)

  判断一个树状天平是否平衡,每个测试样例每行4个数 wl,dl,wr,dr,当wl*dl=wr*dr时,视为这个天平平衡,当wl或wr等于0是,下一行将是一个子天平,如果子天平平衡,wl为子天平的wl+wr ,否则整个天平不平衡

 1 #include<iostream>
 2 using namespace std;
 3 bool solve(int &w)
 4 {
 5     int wl,dl,wr,dr;
 6     cin>>wl>>dl>>wr>>dr;
 7     bool b1 = true,b2=true;
 8     if(wl == 0) b1 = solve(wl);///进入左子天平
 9     if(wr == 0) b2 = solve(wr);///进入右子天平
10     w = wl+wr;
11     return b1 && b2 &&(wl*dl == wr*dr);
12 }
13 
14 int main()
15 {
16     int n;
17    cin>>n;
18         while(n--)
19         {
20             int weight;
21             bool s = solve(weight);
22             if(s) cout<<"YES"<<endl;
23             else cout<<"NO"<<endl;
24             if(n) cout<<endl;
25         }
26     return 0;
27 }

 

转载于:https://www.cnblogs.com/yxh-amysear/p/8449367.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值