4700. 何以包邮?(简单的dp 01背包思想)

news2025/1/19 2:36:18

题目如下:

在这里插入图片描述


输入样例1:

4 100
20
90
60
60

输出样例1:

110

样例1解释
购买前两本书 (20+90) 即可包邮且花费最小。

输入样例2:

3 30
15
40
30

输出样例2:

30

样例2解释
仅购买第三本书恰好可以满足包邮条件。

输入样例3:

2 90
50
50

输出样例3:

100

样例3解释
必须全部购买才能包邮。


题解 or 思路:

看题意 + 数据量 显然是一道金典的 动态规划问题

状态定义:

d p [ x ] dp[x] dp[x]
如果 d p [ x ] = 1 dp[x] = 1 dp[x]=1 代表我们可以凑出来 x x x
如果 d p [ x ] = 0 dp[x] = 0 dp[x]=0 代表我们不能凑出来 x x x

转移方程

d p [ j ]   ∣ = d p [ j − a [ i ] ] dp[j]\ |= dp[j - a[i]] dp[j] =dp[ja[i]]

查找答案时,就从 x x x s u m sum sum 查询是否可以构造出来就行,第一个可以构造出来的就是最优答案!

AC 代码如下:

#define buff                     \
    ios::sync_with_stdio(false); \
    cin.tie(0);
const int N = 300009;
int n, x, a[35], dp[N];
void solve()
{
    cin >> n >> x;
    int sum = 0;
    for (int i = 1; i <= n; i++)
        cin >> a[i], sum += a[i];
    dp[0] = 1;
    for (int i = 1; i <= n; i++)
        for (int j = sum; j >= a[i]; j--)
            dp[j] |= dp[j - a[i]];
    for (int i = x; i <= sum; i++)
    {
        if (dp[i])
        {
            cout << i << '\n';
            return;
        }
    }
}
int main()
{
    buff;
    solve();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/161705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分享128个ASP源码,总有一款适合您

分享128个ASP源码&#xff0c;总有一款适合您 ASP源码 分享128个ASP源码&#xff0c;总有一款适合您 链接&#xff1a;https://pan.baidu.com/s/1FXTm501s200ASY8XYTIk7w?pwd474b 提取码&#xff1a;474b 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不…

安凯微在科创板IPO过会:计划募资10亿元,小米等为其股东

1月13日&#xff0c;上海证券交易所披露的信息显示&#xff0c;广州安凯微电子股份有限公司&#xff08;下称“安凯微”&#xff09;首发符合发行条件、上市条件和信息披露要求&#xff0c;即IPO过会。目前&#xff0c;安凯微的上市申请状态已经变更为“上市委会议通过”。 本次…

线程学习基础(1):单线程爬虫和多线程爬虫的效率比照

线程学习基础&#xff1a;单线程爬虫和多线程爬虫的效率比照1. 并发线程的需求2. 线程提速方法3. 如何选择并发编程的三种方式3.1 什么是CPU密集型计算、IO密集型计算&#xff1f;3.1.1 CPU密集型&#xff08;CPU-bound)3.1.2 IO密集型&#xff08;IO-bound)3.2 多线程Thread、…

三维空间中散点平面拟合方法

1、三点求平面方程、平面法向量和点到平面的距离 已知三点p1&#xff08;x1,y1,z1&#xff09;&#xff0c;p2(x2,y2,z2)&#xff0c;p3(x3,y3,z3)&#xff0c; 要求确定的平面方程,关键在于求出平面的一个法向量 为此做向量p1p2&#xff08;x2-x1,y2-y1,z2-z1), p1p3(x3-x1,…

Linux-8 用户管理

Linux-8 用户管理 什么是用户&#xff1f; Linux/Windows通过用户来管理和维护系统&#xff1b; Windows下的管理员用户&#xff1a;AdministratorLinux下的管理员用户&#xff1a;root Windows/Linux都是多用户系统 Windows同一时间只能使用1个用户Linux可以多用户同时登陆&…

STL - Vector容器

基本概念 功能&#xff1a; vector数据结构和数组十分类似&#xff0c;也成为单端数组 vector和普通数组的区别&#xff1a; 不同之处在于数组是静态空间&#xff0c;而vector可以动态扩展 动态扩展&#xff1a; 并不是在原空间后续再接空间&#x…

【pandas】用户手册:10分钟熟悉pandas(下)

数据分组 Splitting : 利用某些条件将数据进行分组Applying : 函数应用于每个单独的分组Combining : 合并最终的结果 df pd.DataFrame({"A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo&q…

【正点原子FPGA连载】第十四章Linux基础外设的使用 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十四章Linux基…

百趣代谢组学文献分享:间歇性禁食调节糖尿病脑损伤多组学研究

百趣代谢组学文献分享&#xff0c;糖尿病已经成为一个全球问题&#xff0c;国际糖尿病联盟&#xff08;IDF&#xff09;发布的全球糖尿病地图&#xff08;第9版&#xff09;[1]显示&#xff0c;全球糖尿病患者人数不断上升&#xff0c;全球平均增长率为51%&#xff0c;目前有4.…

C#,图像二值化(23)——局部阈值的绍沃拉算法(Sauvola Thresholding)及源程序

1、局部阈值的绍沃拉算法&#xff08;Sauvola Thresholding&#xff09;Niblack和Sauvola阈值算法Niblack和Sauvola阈值是局部阈值技术&#xff0c;对于背景不均匀的图像非常有用&#xff0c;尤其是对于文本识别1、2。代替为整个图像计算单个全局阈值&#xff0c;通过使用考虑到…

【5】K8S_Deployment

目录 1、Deployment作用 2、deployment的冗余能力 3、deployment的多副本部署 4、deployment的扩缩容 5、deployment的自愈能力 6、滚动更新 7、版本回退 1、Deployment作用 控制Pod&#xff0c;使Pod拥有多副本&#xff0c;自愈&#xff0c;扩缩容等能力 2、deployme…

【正点原子FPGA连载】第十五章开发环境搭建 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Linux开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十五章开发环境…

uniapp 窗口小工具、桌面小部件、微件(日历、时间) Ba-AwCalendarS

简介&#xff08;下载地址&#xff09; Ba-AwCalendarS 是一款窗口小工具&#xff08;桌面小部件、微件&#xff09;插件&#xff0c;默认为简单的时间样式&#xff0c;有其他界面需要&#xff0c;可联系作者定制。 支持定时更新&#xff08;本插件为每分钟&#xff09;支持点…

基于springboot,vue二手交易平台

开发工具&#xff1a;IDEA服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8项目构建&#xff1a;maven数据库&#xff1a;mysql5.7系统用户前台和管理后台两部分&#xff0c;项目采用前后端分离前端技术&#xff1a;vue elementUI服务端技术&#xff1a;springbootmybatis项目功…

【数据结构】开端序幕

写在前面&#xff0c;感同身受初学数据结构&#xff0c;是不是一脸懵&#xff0c;下面你中招了几条&#xff1f;&#x1f62d;怎么全是指针&#xff01;指针都不会啊&#xff01;怎么变量名那么长&#xff0c;好难理解啊!什么p&#xff0c;什么next&#xff0c;pp->next究竟…

LeetCode[1753]移除石头的最大得分

难度&#xff1a;中等题目&#xff1a;你正在玩一个单人游戏&#xff0c;面前放置着大小分别为 a、b和 c的 三堆 石子。每回合你都要从两个 不同的非空堆 中取出一颗石子&#xff0c;并在得分上加 1分。当存在 两个或更多 的空堆时&#xff0c;游戏停止。给你三个整数 a、b和 c…

动手深度学习-多层感知机

目录感知机多层感知机激活函数sigmoid函数tanh函数ReLU函数多层感知机的简洁实现参考教程&#xff1a;https://courses.d2l.ai/zh-v2/ 感知机 模型&#xff1a; 感知机模型就是一个简单的人工神经网络。 感知机是二分类的线性模型&#xff0c;其输入是实例的特征向量&#x…

智慧管廊智能化运维管理平台详情

运维管理平台 ​ 平台主界面完成各分系统情况的全局性展现&#xff0c;用图形界面的方法提升视觉效果感染力&#xff0c;根据图色区分正常、异常情况。 1、自然环境及设备监控 ​ 选用全景分层三维可视化地理信息系统及其多元化的二维在线地图从温度、风速、电力、排水、安防…

windows检测远程主机是否连通或者某个端口是否开启

文章目录一、检测主机是否连通步骤二、测试端口是否打开步骤telnet安装一、检测主机是否连通 ping命令是个使用频率极高的网络诊断工具&#xff0c;在Windows、Unix和Linux系统下均适用。它是TCP/IP协议的一部分&#xff0c;用于确定本地主机是否能与另一台主机交换数据报。根…

2022年度总结 EXI-小洲

文章目录一、第一次自我介绍二、2022我都干了些什么(我的收获)1.大专顺利毕业2.后端开发辞职3.第二次代表学校参加江西省职业院校大数据技能大赛4.专升本考试5.参加泰迪杯第五届"数据分析技能赛"6.在csdn开始写博文7.在本科阶段&#xff0c;我又认识了几个会喝点酒的…