POJ——3624 Charm Bracelet
2015-09-26 12:05
274 查看
Charm Bracelet
Description
Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from the N (1 ≤ N ≤ 3,402) available charms. Each charm i in the supplied list has a weightWi (1
≤ Wi ≤ 400), a 'desirability' factor Di (1 ≤ Di ≤ 100), and can be used at most once. Bessie can only support a charm bracelet whose weight is no more than M (1 ≤ M ≤ 12,880).
Given that weight limit as a constraint and a list of the charms with their weights and desirability rating, deduce the maximum possible sum of ratings.
Input
* Line 1: Two space-separated integers: N and M
* Lines 2..N+1: Line i+1 describes charm i with two space-separated integers: Wi and Di
Output
* Line 1: A single integer that is the greatest sum of charm desirabilities that can be achieved given the weight constraints
Sample Input
Sample Output
23
0 1背包
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
#include<iostream>
#include<string>
#include<algorithm>
#include<set>
#include<vector>
#include<queue>
#include<map>
#include<numeric>
#include<stack>
#include<list>
const int INF=1<<30;
const int inf=-(1<<30);
const int MAX=100010;
using namespace std;
struct data
{
int x,y;
} a[10010];
int dp[100010];
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
memset(dp,0,sizeof(dp));
for(int i=1; i <= n; i++)
scanf("%d%d",&a[i].x,&a[i].y);
for(int i=1;i <= n; i++)
for(int j=m; j>=a[i].x; j--)
dp[j]=max(dp[j],dp[j-a[i].x]+a[i].y);
cout<<dp[m]<<endl;
}
}
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 27943 | Accepted: 12589 |
Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fill it with the best charms possible from the N (1 ≤ N ≤ 3,402) available charms. Each charm i in the supplied list has a weightWi (1
≤ Wi ≤ 400), a 'desirability' factor Di (1 ≤ Di ≤ 100), and can be used at most once. Bessie can only support a charm bracelet whose weight is no more than M (1 ≤ M ≤ 12,880).
Given that weight limit as a constraint and a list of the charms with their weights and desirability rating, deduce the maximum possible sum of ratings.
Input
* Line 1: Two space-separated integers: N and M
* Lines 2..N+1: Line i+1 describes charm i with two space-separated integers: Wi and Di
Output
* Line 1: A single integer that is the greatest sum of charm desirabilities that can be achieved given the weight constraints
Sample Input
4 6 1 4 2 6 3 12 2 7
Sample Output
23
0 1背包
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<ctype.h>
#include<iostream>
#include<string>
#include<algorithm>
#include<set>
#include<vector>
#include<queue>
#include<map>
#include<numeric>
#include<stack>
#include<list>
const int INF=1<<30;
const int inf=-(1<<30);
const int MAX=100010;
using namespace std;
struct data
{
int x,y;
} a[10010];
int dp[100010];
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
memset(dp,0,sizeof(dp));
for(int i=1; i <= n; i++)
scanf("%d%d",&a[i].x,&a[i].y);
for(int i=1;i <= n; i++)
for(int j=m; j>=a[i].x; j--)
dp[j]=max(dp[j],dp[j-a[i].x]+a[i].y);
cout<<dp[m]<<endl;
}
}
相关文章推荐
- MTK Android部分配置修改
- 软考---数据结构
- SQLite3的基本使用
- mysqlbackup 还原特定的表
- 黑盒测试的一些设计测试用例的方法及例子
- 动态JSP页生成静态HTML的方法
- 通过spring 配置 @Scheduled定时任务
- Sniffer抓包教程
- 移动端网页解决CSS的active伪类无效的方法
- 跟6.10对比一下
- java 图片缩放、裁剪。
- test7.24
- 读大道至简第二章有感
- HTML列表是什么?
- 记录下查询表空间使用率信息的语句
- Exchange工具11—性能监视器
- windbg远程调试方法
- 一个jsp页面中多个提交按钮提交不同的页面
- var s=+newDate();的用法,表示对应的时间截
- HDU 4548 美素数(西山居挑战赛)