01背包补题(一)(上)

简介: 01背包补题(一)

前言

动态规划——01背包的一些习题,包含如下题目:

⭐️ P1048 采药

⭐️ P2871 [USACO07DEC]Charm Bracelet S

⭐️ P1049 装箱问题

⭐️ P1060 开心的金明

⭐️ P1164 小A点菜

⭐️ P1510 精卫填海

⭐️ P2639 [USACO09OCT]Bessie’s Weight Problem G

⭐️ P2925 [USACO08DEC]Hay For Sale S

⭐️ P1926 小书童——刷题大军

⭐️ P1802 5倍经验日

⭐️ P1734 最大约数和

⭐️ P2392 kkksc03考前临时抱佛脚


刷题记录,不提供代码解释,01背包的讲解博客见:01背包问题及二维费用背包问题

P1048 [NOIP2005 普及组] 采药

本题链接P1048 [NOIP2005 普及组] 采药

本博客给出本题截图

54.png


#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 1010;
int f[N];
int main()
{
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= m; i ++ )
    {
        int v, w;
        cin >> v >> w;
        for (int j = n; j >= v; j -- )
            f[j] = max(f[j], f[j - v] + w);
    }
    cout << f[n] << endl;
    return 0;
}

P2871 [USACO07DEC]Charm Bracelet S

本题链接P2871 [USACO07DEC]Charm Bracelet S

本博客给出本题截图

55.png

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 12890;
int f[N];
int main()
{
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i ++ )
    {
        int v, w;
        cin >> v >> w;
        for (int j = m; j >= v; j -- )
            f[j] = max(f[j], f[j - v] + w);
    }
    cout << f[m] << endl;
    return 0;
}

P1049 [NOIP2001 普及组] 装箱问题

本题链接P1049 [NOIP2001 普及组] 装箱问题

本博客给出本题截图

56.png

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 20010;
int f[N];
int main()
{
    int m, n;
    cin >> m >> n;
    for (int i = 1; i <= n; i ++ )
    {
        int v;
        cin >> v;
        for (int j = m; j >= v; j -- )
            f[j] = max(f[j], f[j - v] + v);
    }
    cout << m - f[m] << endl;
    return 0;
}

P1060 [NOIP2006 普及组] 开心的金明

本题链接P1060 [NOIP2006 普及组] 开心的金明

本博客给出本题截图

57.png

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 30010;
int f[N];
int main()
{
    int n, m;
    cin >> m >> n;
    for (int i = 1; i <= n; i ++ )
    {
        int v, p;
        cin >> v >> p;
        int w = v * p;
        for (int j = m; j >= v; j -- )
            f[j] = max(f[j], f[j - v] + w);
    }
    cout << f[m] << endl;
    return 0;
}



目录
相关文章
|
机器学习/深度学习 人工智能 算法
【AI系统】计算图挑战与未来
当前主流AI框架采用计算图抽象神经网络计算,以张量和算子为核心元素,有效表达模型计算逻辑。计算图不仅简化数据流动,支持内存优化和算子调度,还促进了自动微分功能的实现,区分静态图和动态图两种形式。未来,计算图将在图神经网络、大数据融合、推理部署及科学计算等领域持续演进,适应更复杂的计算需求。
355 5
【AI系统】计算图挑战与未来
|
存储 NoSQL 物联网
【MongoDB 专栏】MongoDB 在物联网(IoT)领域的应用
【5月更文挑战第11天】MongoDB,一种灵活可扩展的非关系型数据库,在物联网(IoT)领域中大放异彩。应对海量设备产生的多样化数据,MongoDB的文档型数据结构适应性强,适合存储设备信息及传感器读数。其实时更新、强大查询语言、索引机制和扩展性(通过分片技术)满足物联网的高实时性、复杂查询和数据增长需求。尽管面临数据安全和管理挑战,MongoDB已广泛应用于智能家居、工业 IoT 和智能交通等领域,并有望随着物联网技术进步和与其他领域的融合,如人工智能、大数据,持续发展。未来,优化数据质量、提升并发处理能力将是关键,MongoDB将在物联网的智能未来中扮演重要角色。
1065 2
【MongoDB 专栏】MongoDB 在物联网(IoT)领域的应用
|
前端开发 开发者 UED
Flutter的自定义Painter:深入探索自定义绘制Widget的技术实现
【4月更文挑战第26天】Flutter的自定义Painter允许开发者根据需求绘制独特UI,通过继承`CustomPaint`类和重写`paint`方法实现。在`paint`中使用`Canvas`绘制图形、路径等。创建自定义Painter类后,将其作为`CustomPaint` Widget的`painter`属性使用。此技术可实现自定义形状、渐变、动画等复杂效果,提升应用视觉体验。随着Flutter的进化,自定义Painter将提供更丰富的功能。
|
存储 搜索推荐 API
小红书笔记详情API接口的开发、应用与收益
小红书笔记详情API接口为开发者、企业和内容创作者提供了获取平台丰富资源的通道。通过该接口,用户可以提取笔记的详细信息(如标题、正文、标签等),并应用于市场调研、竞品分析、内容创作、电商推荐等多个领域。这不仅有助于提升品牌影响力和优化用户体验,还能挖掘商业机会,促进内容创新,增强用户互动与社群凝聚力。总之,小红书笔记详情API接口为企业和个人在社交媒体领域探索新增长点提供了重要工具。
347 0
|
安全 网络安全 API
无需公网也可访问的ChatGPT WebUI服务
通过阿里云计算巢实现无需开启公网访问即可使用的ChatGPTWebUI服务。借助WEB安全代理功能保障安全,无公网费用,适合个人与团队内部使用。
|
人工智能 自然语言处理 搜索推荐
评测:AI客服接入钉钉与微信的对比分析
【8月更文第22天】随着人工智能技术的发展,越来越多的企业开始尝试将AI客服集成到自己的业务流程中。本文将基于《10分钟构建AI客服并应用到网站、钉钉或微信中》的解决方案,详细评测AI客服在钉钉和微信中的接入流程及实际应用效果,并结合个人体验分享一些心得。
10534 10
|
安全 数据安全/隐私保护
ShrePoint系统管理员域帐号密码修改
【8月更文挑战第10天】在SharePoint环境中,系统管理员需按以下步骤修改域账号密码:首先确保拥有足够权限,并理解对服务的影响。可通过Active Directory工具重置密码,或使用命令行工具如`net user`命令来完成。之后,更新SharePoint相关服务配置以适应新密码,并检查服务日志确保一切正常运行。操作时须谨慎,确保新密码安全且及时通知相关人员。
380 3
|
存储 应用服务中间件 nginx
双非本24秋招之路,从考研跑路到大厂上岗(无实习、项目)
双非本24秋招之路,从考研跑路到大厂上岗(无实习、项目)
|
并行计算 异构计算
cuda在windows10安装教程
首先找到这个图标,也就是nvidia控制面板
677 0