1. K11504 天平[Not so Mobile,UVa839]

题目描述

输入一个树状天平,根据力矩相等原则判断是否平衡。如图所示,所谓力矩相等就是WlDl=Wr Dr,其中Wl和Wr分别为左右两边砝码的重量,D为距离。

输入格式

输入的第一行,是一个整数n,表示测试数据的组数。紧接着是一个空行。每组测试数据之间也有一个空行。

每组测试数据,包含多行,采用递归(先序)方式输入,每行用空格隔开的4个整数,分别代表Wl、Dl、Wr、Dr。当Wl或Wr为0时,表示该"砝码"实际是一个子天平,接下来会描述这个子天平。当Wl=Wr=0时,会先描述左子天平,然后是右子天平。

例如:输入样例就描述了下图的天平:

输出格式

对于每组测试数据,输出一行,如果天平平衡输出'YES',否则输出'NO'。两组测试数据结果之间输出一个空行。

输入输出样例

输入样例1:

1

0 2 0 4

0 3 0 1

1 1 1 1

2 4 4 2

1 6 3 2

输出样例1:

YES

说明

数据保证"天平"总数不超过400

【耗时限制】3000ms 【内存限制】128MB

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct st{
    ll wl,dl,wr,dr;
    ll l,r;
}a[500];
ll n,tot,cntw[500];
ll build(){
    ll r=++tot;
    scanf("%lld%lld%lld%lld",&a[r].wl,&a[r].dl,&a[r].wr,&a[r].dr);
    if(!a[r].wl)a[r].l=build();
    if(!a[r].wr)a[r].r=build();
    return r;
}
ll count(ll r){
    if(!r)return 0;
    cntw[r]=count(a[r].l)+count(a[r].r)+a[r].wl+a[r].wr;
    return cntw[r];
}
int main(){
    scanf("%lld",&n);
    while(n--){
        memset(a,0,sizeof a);
        tot=0;
        ll r=build();
        count(r);
        ll ok=1;
        for(ll r=1;r<=tot;r++){
            ll wl,wr;
            if(!a[r].wl)wl=cntw[a[r].l];
            else wl=a[r].wl;
            if(!a[r].wr)wr=cntw[a[r].r];
            else wr=a[r].wr;
            if(wl*a[r].dl!=wr*a[r].dr){
                ok=0;
                break;
            }
        }
        if(ok)printf("YES\n\n");
        else printf("NO\n\n");
    }
    return 0;
}
相关推荐
Old Uncle Tom5 小时前
OpenClaw 记忆系统 -- 记忆预加载
java·数据结构·算法·agent
会编程的土豆5 小时前
洛谷题单入门1 顺序结构
数据结构·算法·golang
生信碱移5 小时前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
智者知已应修善业6 小时前
【51单片机中的打飞机设计】2023-8-25
c++·经验分享·笔记·算法·51单片机
智者知已应修善业8 小时前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
JasmineX-19 小时前
数据结构(笔记)——双向链表
c语言·数据结构·笔记·链表
.5489 小时前
## Sorting(排序算法)
python·算法·排序算法
wuweijianlove9 小时前
算法的平均复杂度建模与性能回归分析的技术7
算法·数据挖掘·回归
子琦啊9 小时前
【算法复习】字符串 | 两个底层直觉,吃透高频题
linux·运维·算法
code_pgf11 小时前
Octo 算法详解-开源通用机器人策略模型技术报告
算法·机器人·开源