COGS 144. [USACO Dec07] 魅力手镯【01背包复习】

144. [USACO Dec07] 魅力手镯

★   输入文件:charm.in   输出文件:charm.out   简单对比
时间限制:1 s   内存限制:8 MB

译 by CmYkRgB123

描述

贝茜去了大卖场的珠宝商店,发现一个魅力手镯,她想把最好的宝石镶嵌在这条手镯上。她有 N (1 ≤ N ≤ 3,402) 种可用宝石,每种宝石 i 都有其重量 Wi (1 ≤ Wi ≤ 400),与价值 Di (1 ≤ Di ≤ 100),每种宝石最多只能用一次。贝茜只能把总重量不超过 M (1 ≤ M ≤ 12,880)的宝石镶嵌到手镯上。

给你每个宝石的重量和价值,请你算出贝茜最多能把总价值为多大的宝石镶嵌到手镯上。

输入

  • 第 1 行: 两个整数 N , M
  • 第 2..N+1 行: 第 i+1 行 有两个整数, Wi 和 Di

输出

  • 第 1 行: 一个整数,为镶嵌的宝石的总价值。

样例输入

4 6
1 4
2 6
3 12
2 7

样例输出

23

 

分析:01背包纯裸题,复习一下,又忘记了!
下面给出AC代码:
复制代码
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int w[15000],d[15000],dp[15000];
 4 int main()
 5 {
 6     int n,m;
 7     freopen("charm.in","r",stdin);
 8     freopen("charm.out","w",stdout);
 9     scanf("%d%d",&n,&m);
10     for(int i=1;i<=n;i++)
11         scanf("%d%d",&w[i],&d[i]);
12     for(int i=1;i<=n;i++)
13         for(int j=m;j>=w[i];j--)
14             dp[j]=max(dp[j],dp[j-w[i]]+d[i]);
15     cout<<dp[m]<<endl;
16     return 0;
17 }
复制代码

 

 

posted @   Angel_Kitty  阅读(342)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示
哥伦布
14°
14:09发布
哥伦布
14:09发布
14°
大雨
南风
3级
空气质量
相对湿度
93%
今天
中雨
14°/19°
周日
中雨
5°/19°
周一
1°/11°