【题解】[NHOI2018 初中组] [问题 F] 博览会(Exhibition)(树形DP)

本文介绍了如何使用树形动态规划解决一个关于博览会参观的问题。小明在有特定费用限制的情况下,需要确定最多能参观多少个展台。问题转化为树上01背包,通过从叶节点向上进行01背包求解,找到最优路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[[[问题 F]\rm F]F] 博览会(Exhibition)(树形DP)


Description\rm DescriptionDescription

某市正在举行一场大型博览会,博览会有 nnn 个展馆,每个展馆里有若干个展台。
nnn 个展馆以及它们之间的道路可以看成一棵二叉树,博览会的出入口设在根节点—— 111 号展馆,小明将从这里出发乘坐电瓶车到各个展馆参观,并最终回到 111 号展馆出口。

由于路程差异,乘坐电瓶车往返不同展馆间的费用也有所区别。
出发时,小明的乘车卡里余额为 kkk。他现在想知道,若全程都乘坐电瓶车,他最多能参观多少个展台?
输入

输入共 n+2n+2n+2 行:
111行为222个整数 n,kn,kn,k,用一个空格隔开,表示展馆个数和小明乘车卡初始余额。
222行为 nnn 个数,用一个空格隔开,表示111号至 nnn号各展馆的展台数目。
接下来 nnn 行,每行444个数,用一个空格隔开;第 i+2i+2i+2444个数分别表示展馆i左子节点展馆号、到左子节点展馆的费用、右子节点展馆号、到右子节点展馆的费用。如果子节点展馆号为000则表示没有对应的子节点展馆。

输出
输出共111行,111个整数,表示小明最多能参观的展台数量。

输入样例

10 20 
2 8 5 1 10 5 9 9 3 5 
2 1 3 2 
4 8 5 2 
6 2 7 2 
8 3 9 6 
0 0 10 2 
0 0 0 0 
0 0 0 0 
0 0 0 0 
0 0 0 0 
0 0 0 0

输出样例

39 

说明:
根据样例数据,可以得到如下展馆二叉树示意图(每个圈内标示了展馆号及展台数):

在这里插入图片描述

由图可知,小明沿红色箭号路径,到1、2、5、3、6、7这六个展馆参观并返回,往返乘车费用为18,参观展台数为39,为能够实现的最大值。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值