天平平衡(递归) 我会带着你远行 2022-07-15 03:20 91阅读 0赞 ## 天平平衡 ## 时间限制: 1 Sec 内存限制: 128 MB 提交: \- 解决: \- \[ [提交][Link 1]\]\[ [状态][Link 2]\]\[ [讨论版][Link 3]\] ## 题目描述 ## 天平是一种衡器,是衡量物体质量的仪器。它依据杠杆原理制成,在杠杆的两端各有一小盘,一端放砝码,另一端放要称的物体,杠杆中央装有指针,两端平衡时,两端的质量(重量)相等。 现在递归地描述一个天平: 1.每个天平用两个正整数代表左右两端的质量。 2.如果左端或者右端的数字为0,代表这一端由子天平构成,那么在下一行描述这个子天平。 如: 0 0 0 2 1 1 2 2 代表天平: ![20161029001526_83504.png][] 一个天平平衡的条件: 1.天平的两端质量相同。 2.如果存在子天平,子天平平衡。 很显然上述天平是平衡的。 对于一个描述的天平,请判断是否达成平衡。 ## 输入 ## 每次测试只有一组数据。 给出一个天平,描述方式如上。 ## 输出 ## 如果所给天平平衡,输出“YES”,否则输出“NO”。 ## 样例输入 ## 0 0 0 2 1 1 2 2 ## 样例输出 ## YES 今天拿出同学给大一出的周练题写了下,是考的递归,能真正理解的话对递归的掌握也就差不多了,这里贴出来分享一下。代码可能有点长,还有更简洁的写法,我想应该会有助于理解吧。 #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> using namespace std; const int N = 100000; int flag; int solve() { int fx,fy; int val1,val2,val; scanf("%d%d",&fx,&fy); if(fx!=0&&fy!=0) { val1=fx; val2=fy; val=val1+val2; if(val1!=val2) { flag=1; } } else if(fx==0&&fy==0) { val1=solve(); val2=solve(); val=val1+val2; if(val1!=val2) { flag=1; } } else if(fy!=0&&fx==0) { val1=solve(); val2=fy; val=val1+val2; if(val1!=val2) { flag=1; } } else { val1=fx; val2=solve(); val=val1+val2; if(val1!=val2) { flag=1; } } return val; } int main() { int a,b; flag=0; solve(); printf("%s\n",flag?"NO":"YES"); return 0; } [Link 1]: http://acm.hpu.edu.cn/submitpage.php?cid=1003&pid=8&langmask=131068 [Link 2]: http://acm.hpu.edu.cn/problemstatus.php?id=1057 [Link 3]: http://acm.hpu.edu.cn/bbs.php?pid=1057&cid=1003 [20161029001526_83504.png]: http://acm.hpu.edu.cn/upload/image/20161029/20161029001526_83504.png
相关 天平平衡(递归) 天平平衡 时间限制: 1 Sec 内存限制: 128 MB 提交: \- 解决: \- \[ [提交][Link 1]\]\[ [状态][Link 2]\]\[ 我会带着你远行/ 2022年07月15日 03:20/ 0 赞/ 92 阅读
相关 POJ 1837-Balance(01背包-天平平衡) Balance <table> <tbody> <tr> <td><strong>Time Limit:</strong> 1000MS</td> 朱雀/ 2022年07月12日 04:06/ 0 赞/ 113 阅读
相关 递归 递归算法基本思想:找出递归子结构性质(原问题的解包含了子问题的解)、用子问题的解来递归定义原问题的解、找出递归终止条件。 示例: 例1 阶乘函数 阶乘函数可 ╰半橙微兮°/ 2022年06月09日 09:14/ 0 赞/ 255 阅读
相关 递归 > 递归的定义其实很简单,无非就是函数自己调用自己,但是要注意递归函数一定要有终止的条件,因为如果无限次调用而无法结束就会导致内存耗尽,系统就崩了…… 下面,主要利用递归实现 ╰+攻爆jí腚メ/ 2022年06月06日 11:37/ 0 赞/ 191 阅读
相关 递归——线性递归与二分递归 递归 线性递归 例子1:数组求和 int sum( int A[], int n) { //数组求和算法:线性递归版 if 向右看齐/ 2022年05月21日 04:41/ 0 赞/ 300 阅读
相关 递归 递归优点:代码简单 代码量少 递归缺点:不易理解 用递归解决问题时,主要思路: 1.将一个大问题分解成子问题 2.子问题除了问题规模会变小,和原问题解决的思路是一 向右看齐/ 2022年05月03日 10:28/ 0 赞/ 192 阅读
相关 递归 1. public class HelloWorld \{ 2. public static void main(String\[\] args)\{ 3. // Sca 女爷i/ 2022年04月12日 10:50/ 0 赞/ 292 阅读
相关 递归 递归Recursion 递归要求 1. 递归一定要有退出条件,递归调用一定要执行到这个退出条件。没有退出条件的递归调用,就是无限调用 2 雨点打透心脏的1/2处/ 2022年02月19日 05:39/ 0 赞/ 262 阅读
相关 递归 1、递归 函数的递归调用; fun1()-->fun2()-->fun3()-->fun1() 间接递归 fun1()<-->fun1() 直接递归 2、递归 落日映苍穹つ/ 2022年01月13日 18:21/ 0 赞/ 200 阅读
相关 递归 递归只是让你解决方案更加清晰,并没有性能上的优势。实际上,在有些情况下,使用循环的性能更好。正如,在Stack Overflow 上,Leigh Caldwell 说了一句话: 男娘i/ 2021年09月13日 23:58/ 0 赞/ 337 阅读
还没有评论,来说两句吧...