info: { blogIcon: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogUser: 'OIerBoy', blogAvatar: 'https://cdn.luogu.com.cn/upload/usericon/765493.png', blogStartDate: '2023-04-22', webpageTitleOnblur: '(o?v?)ノ Hi', webpageTitleOnblurTimeOut: 1000, webpageTitleFocus: '(*′?`*) 欢迎回来!', webpageTitleFocusTimeOut: 1000, webpageIcon: "https://cdn.jsdelivr.net/gh/BNDong/Cnblogs-Theme-SimpleMemory@master/img/webp/blog_logo.webp", { enable: true, // 是否开启日/夜间模式切换按钮 auto: { // 自动切换相关配置 enable: false, // 开启自动切换 dayHour: 5, // 日间模式开始时间,整数型,24小时制 nightHour: 19 // 夜间模式开始时间,整数型,24小时制 } } },

[CF19B]Checkout Assistant

2023-06-01

题目

题目传送门

难度&重要性(1~10):5

题目来源

Codeforces,luogu

题目算法

01背包,dp

解题思路

这道题只需要将题面的意思转换一下就可以了。
服务员要扫物品 \(i\) 时我们是可以偷走 \(t_i\) 件物品的,一共就可以拿 \(t_i+1\) 件。
这就是我们这一件物品的“体积”了。
而因为我们必须拿或偷完 \(n\) 件,所以这里是“总体积”就最小应该为 \(n\),最大为\((t+1)_{max}+n\)

那么,题意就变成了:
\(n\) 件物品,物品 \(i\) 的价值是 \(c_i\),体积为 \(t_i+1\),我们要拿一些物品使总体积大于等于 \(n\)

现在这就是一个01背包板体了。

完成状态

已完成

posted @ 2023-06-01 09:31  OIerBoy  阅读(17)  评论(0)    收藏  举报