题解:不需要建树,深搜就可以了。把每次的总重递归回去再乘力矩,和另一边对比。
#include <stdio.h>
int flag;
int dfs() {
int wl, dl, wr, dr;
scanf("%d%d%d%d", &wl, &dl, &wr, &dr);
if(wl == 0)
wl = dfs();
if(wr == 0)
wr = dfs();
if(wl * dl == wr * dr)
return wl + wr;
else {
flag = 0;
return 0;
}
}
int main() {
int t;
scanf("%d", &t);
while (t--) {
flag = 1;
dfs();
if (flag == 1)
printf("YES\n");
else
printf("NO\n");
if (t)
printf("\n");
}
return 0;
}