糖果

这篇博客讲述了在万圣节小Q如何在限定时间内通过一棵树状结构的邻里关系网络,规划路线以获取最多糖果的问题。小Q的目标是在妈妈回来前获得最多的糖果,并准时回家。输入包括邻居数量、糖果数、路线时间和小Q家的编号及妈妈回家时间。通过树形背包算法解决此问题,给出示例解释了策略和输出结果。
摘要由CSDN通过智能技术生成

题目描述
万圣节那天,小Q想去邻居要糖果,玩下“Trick or Treat”。小Q家和邻居家够成一棵树,即邻居间可以相互到达,并且只有一种方案。小Q的妈妈将在m分钟后回来,如果发现小Q不在家会很生气。小Q希望获得最多的糖果,并且在m分钟内回到家中。现在告诉你每条路要花的时间,并假设小Q到了邻居家后就能拿到糖果,不需要花时间,当然每个邻居只会给一次糖果,以后经过的时候,就不再给了。请你帮她算算,她最多能拿到多少糖果。

输入
输入数据一行,一个正数n表示小Q所在的敌方有多少户人家。
接下一行n个数,表示每户人家给她的糖数vali。
接下来n-1,每行三个数,a, b, c,表示通过连接编号为a, b的人家的路要花费c分钟的时间,1<=a, b<=n。
最后一行,两个整数k, m,k表示小Q家的编号(小Q也能从自己家获得糖果),m表示妈妈m分钟后回家。

输出
输出一个整数表示小Q能获得最多糖果数量。

样例输入
2
1 3
2 1 1
2 1
样例输出
3

输入:
2
3 3
1 2 1
2 2
输出:
6

样例一解释:小Q只能获得自己家的糖果,不能在m分钟去其他的地方再赶回来。
样例二解释:小Q能获得自己家的糖果和编号为1邻居家的糖果,并恰好在m分钟赶回家中。

对于30%的数据1<=n<=10;
对于100%的数据,1<=n<=100,1<=m<=200 ,0<=vali <=1000,1<=c<=10;

树形背包
f[i][j]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值