当前位置:网站首页>【练习-5】(Uva 839)Not so Mobile(天平)
【练习-5】(Uva 839)Not so Mobile(天平)
2022-07-06 09:26:00 【火焰车】
翻译一下:
输入一个树状天平,根据力矩相等原则判断是否平衡。所谓力矩相等,就是W1D1 = W2D2,其中W1和W2分别为左右两边砝码的重量,D为距离。
采用递归(先序)方式输入:每个天平的格式为W1 D1 W2 D2,当W1 或 W2 为0时,表示该“砝码”实际是一个天平,接下来会描述这个天平。当W1=W2=0时,会先描述左子天平,然后是右子天平。
递归。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5+5;
const ll mod = 1e9+7;
int solve(int &w)
{
int w1,d1,w2,d2;
int x1=1,x2=1;
cin>>w1>>d1>>w2>>d2;
if(!w1) x1 = solve(w1);
if(!w2) x2 = solve(w2);
w = w1+w2;
return x1 && x2 && (w1 * d1 == w2 * d2);
}
int main()
{
int n,w;
cin>>n;
while(n--)
{
if(solve(w))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
cout<<endl;
}
}
给x1 和 x2赋值为1是因为到了最后一层,他是没有左右子天平的,所以默认是1。
由于是先序递归,所以我们的输入也是先根再左再右。根据题目的介绍也可以知道,必然是个平衡二叉树。
最一开始我以为可以不加w,后来发现,w是必须要加的而且参与递归,如果不加,那么只有最下面的一层可以完成计算
比如在上面的图中,只有1 * 1 = 1 * 1和 2 * 4 = 4 * 2 和 3* 2 = 6 * 1 可以被计算出来如果不加w的话。
添加了之后每次会返回下面两个球的和也就可以求两个天平是否平衡了。以此类推,递归完成。
边栏推荐
- Opencv learning log 19 skin grinding
- B - 代码派对(女生赛)
- Research Report on market supply and demand and strategy of Chinese hospital cleaning chemicals industry
- C语言学习笔记
- 毕业才知道IT专业大学生毕业前必做的1010件事
- Matlab comprehensive exercise: application in signal and system
- Research Report on printed circuit board (PCB) connector industry - market status analysis and development prospect forecast
- cs零基础入门学习记录
- China medical check valve market trend report, technical dynamic innovation and market forecast
- 对iptables进行常规操作
猜你喜欢
随机推荐
Research Report on market supply and demand and strategy of Chinese hospital cleaning chemicals industry
Stm32 dossiers d'apprentissage: saisie des applications
C语言学习笔记
C语言必背代码大全
Opencv learning log 18 Canny operator
LeetCode#2062. Count vowel substrings in strings
1010 things that college students majoring in it must do before graduation
Research Report of cylindrical grinder industry - market status analysis and development prospect forecast
Market trend report, technical innovation and market forecast of lip care products in China and Indonesia
Research Report on printed circuit board (PCB) connector industry - market status analysis and development prospect forecast
基于web的照片数码冲印网站
Cost accounting [22]
想应聘程序员,您的简历就该这样写【精华总结】
Matlab comprehensive exercise: application in signal and system
毕业才知道IT专业大学生毕业前必做的1010件事
学习记录:如何进行PWM 输出
Flex --- detailed explanation of flex layout attributes
E. Breaking the Wall
HDU-6025-Coprime Sequence(女生赛)
Market trend report, technological innovation and market forecast of pneumonia drugs obtained by Chinese hospitals