题意:天平的两端,每端的重量 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; }
原文地址:http://blog.csdn.net/buxizhizhou530/article/details/38927393