1057: 天平平衡 [递归] | 您所在的位置:网站首页 › 天平构成 › 1057: 天平平衡 [递归] |
题目描述 天平是一种衡器,是衡量物体质量的仪器。它依据杠杆原理制成,在杠杆的两端各有一小盘,一端放砝码,另一端放要称的物体,杠杆中央装有指针,两端平衡时,两端的质量(重量)相等。 现在递归地描述一个天平: 1.每个天平用两个正整数代表左右两端的质量。 2.如果左端或者右端的数字为0,代表这一端由子天平构成,那么在下一行描述这个子天平。 如: 0 0 0 2 1 1 2 2 代表天平: 一个天平平衡的条件: 1.天平的两端质量相同。 2.如果存在子天平,子天平平衡。 很显然上述天平是平衡的。 对于一个描述的天平,请判断是否达成平衡。 输入 每次测试只有一组数据。 给出一个天平,描述方式如上。 输出 如果所给天平平衡,输出“YES”,否则输出“NO”。 样例输入 0 0 0 2 1 1 2 2 样例输出 YES #include int flag; int dfs(int a) { if(flag) return 0; if(a!=0) return a; else { int c,d; scanf("%d%d",&c,&d); if(c==0) c=dfs(c); if(d==0) d=dfs(d); if(d!=c) { flag=1; return 0; } return c+d; } } int main() { int a,b; flag=0; scanf("%d%d",&a,&b); a=dfs(a); b=dfs(b); if(a==b&&!flag) printf("YES\n"); else printf("NO\n"); return 0; }代码转自博主大一时候acm协会带我的学长。虽然他已经退役了。但他给我的教诲我会一直牢记。 在此再次向师傅致敬。 |
CopyRight 2018-2019 实验室设备网 版权所有 |