2022-07-20 14:14
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-07-20 14:14
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-07-20 14:14
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-07-20 14:13
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-07-20 14:13
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-07-20 14:13
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-07-20 14:13
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-07-20 14:12
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-07-20 14:12
江苏师范大学 Java 0 点赞 评论 收藏
分享
2022-02-11 15:56
江苏师范大学 Java zyh_:刚好刷到了,提供一个比较笨重的办法:
这里我把这个问题转化成背包问题。设多维数组dp[A][B][C],dp[i][j][k]表达在购买i件A,j件B,和k件C的情况下所能达到的最优优惠金额,最优解问题,那么数组dp初始化为0即可。依题有5种商品可以选择:A,B,C,AB,BC。B和C的优惠金额都是0元,因此可以忽略。
dp[i][j][k]如何得到呢?依次考虑A,AB,BC这三件商品即可,比如先考虑A,A最多买i件,那么依次考虑买0,1,2,...i件A,即dp[i][j][k]=max(dp[i][j][k], dp[i-x][j][k] + 10*x),这里A的购买件数是x,x从0遍历到i即可。A考虑完之后再考虑AB,AB最多购买min(i,j)件,且在购买x件AB的情况下,dp[i][j][k]=max(dp[i][j][k], dp[i-x][j-x][k] + 30*x), 方法一样,最后再考虑BC即可。
将ijk的值分别遍历到想要的数值,最后就能得到答案。
时间复杂度好像是n的4次幂

0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: