#青训营笔记创作活动# 问题描述
小F正在超市购物,有n个商品摆成一排,每个商品的价格为ai​,小F对它的喜爱度为bi​。所有商品的价格都是偶数。超市有一个活动:当小F以原价购买某件商品时,她可以用半价购买下一件右边相邻的商品(当然也可以选择以原价购买,这样下一件商品仍有机会半价购买)。然而,如果小F半价购买了一件商品,那么下一件相邻的商品只能原价购买。

小F手中有x金额,她希望通过购物活动,尽可能最大化她获得的喜爱度总和,并且购买的商品总价格不能超过她的初始金额x。

测试样例
样例1:

输入:n = 4 ,x = 7 ,a = [2, 2, 6, 2] ,b = [3, 4, 5, 1]
输出:12

样例2:

输入:n = 3 ,x = 10 ,a = [4, 4, 4] ,b = [2, 3, 5]
输出:10

样例3:

输入:n = 5 ,x = 8 ,a = [2, 4, 4, 6, 2] ,b = [1, 2, 3, 4, 5]
输出:10

题解:
使用DFS求解,其中传入DFS的数据的意义分别是

i:当前决定的物品;

t:当前使用的价格;

love:当前的喜爱值;

half:当前商品是否可以半价购买;

一个商品总共有三种状态:原价买,半价买,不买,其中半价有前一个商品原价的要求。
展开
评论