题意:有许多天秤,判断是否为平衡状态。
其实就是二叉树,使用一边的长度乘以重量,再和另一边的比较,如果有一边是0,那么它的下面肯定还有一个秤。
本来用建树再操作写的自己都晕了,后来在网上看到直接用递归输入处理的【膜拜】
#include <cstdio>
int flag;
int Mobile()
{
int Wl, Dl, Wr, Dr;
scanf("%d%d%d%d", &Wl, &Dl, &Wr, &Dr);
if (Wl == 0) Wl = Mobile();
if (Wr == 0) Wr = Mobile();
if (Wl*Dl != Wr*Dr)
flag = 0;
return Wl+Wr;
}
int main()
{
int T;
scanf("%d", &T);
while (T--)
{
flag = 1;
Mobile();
if (flag == 1) printf("Yes\n");
else printf("No\n");
}
return 0;
}