码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 839 天平

时间:2014-08-29 18:23:58      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:uva   递归   

题意:天平的两端,每端的重量 wl 和 wr ,每端到中点的距离 dl 和 dr ,要满足wl*dl==wr*dr才能保持天平平衡。天平的每端可以再系一个天平,该端的重量为该子天平的总重量。问最终天平是否能平衡。   这里的天平是指上面竖直一根系,系着一个水平的金属棒,金属棒的两端挂物体,要保持平衡,不要想成了放在桌子上的那种天平。 题目Not so mobile 翻译成天平应该是意译了吧,觉得还不如翻成平衡算了~

思路:主要是递归的思想。这里有这样一个问题,最后问的是所有天平都平衡呢还是最上面的那个,因为理论上如果子天平不平衡,但它的重量可能使得上层的天平还是可以平衡的~~我的理解是所有的天平都要平衡,用一个标记位来表示,全局变量。

注意:输出的时候。每两个结果之间要有一个空行,但如果只有一个结果则不需要空行。

也挺简单的,玩手机玩了一会儿,不然就连续切题了~

Code:

#include<stdio.h>

int dfs();

int flag;

int main()
{
 int n;
 scanf("%d",&n);
 bool first=1;
 while(n-->0)
 {
  flag=0;     
  dfs();
  if(first)
  {
   first=0;
   if(flag==0) printf("YES\n");
   else printf("NO\n");           
  }     
  else 
  {
   if(flag==0) printf("\nYES\n");
   else printf("\nNO\n");    
  }
 }
 return 0;   
}

int dfs()
{
 int wl=0,wr=0,dl=0,dr=0;
 scanf("%d %d %d %d",&wl,&dl,&wr,&dr);
 if(wl==0) wl=dfs();
 if(wr==0) wr=dfs();
 flag+=!(wl*dl==wr*dr);
 return wl+wr;   
}


UVa 839 天平

标签:uva   递归   

原文地址:http://blog.csdn.net/buxizhizhou530/article/details/38927393

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!