超市购物
来源:互联网 发布:怎么提高淘宝销量 编辑:程序博客网 时间:2024/04/27 16:04
Description
上次去超市扫荡回来的东西用完了,Staginner又得跑超市一趟,出发前他列了一张购物清单,打算去买K种不同的商品,每种买一件。到了超市,Staginner发现每种商品有N个品牌,每个品牌此商品的价格为Vi,对Staginner的作用值为Wi,他会从这N个品牌里面挑一个品牌买。这时,Staginner突然想起出门时只带了M元钱,又懒得去取钱了,所以不一定能买完K种商品,只好尽可能地让买的东西对自己的总作用值ans最大。
Input
多组样例。
第一行两个整数K,M代表Staginner想买的不同种类商品的数目和他带的钱 (0 < K <= 30, 0 < M <= 2000)
以下输入分为K个部分,代表K种商品。
每个部分第一行为一个数字N,代表第k种商品的N个品牌,N不大于10。之后跟着N行,每行两个数字,代表物品的价格Vi和作用值Wi。其中 0 < Vi < M。
Output
输出Case #: 最大总作用值,每两个样例之间有一个空行。
Sample Input
3 100
3
50 600
20 700
30 800
2
30 500
40 600
1
60 200
2 500
2
200 1000
260 1200
1
280 300
Sample Output
Case 1: 1400
Case 2: 1300
HINT
分组动态规划问题
#include<stdio.h>
#include<string.h>
int bag[100][100],dp[2500],val[100][100];
int main()
{
int k,m,n,i,j,t,cnt=0;
while(scanf("%d %d",&t,&m)!=EOF)
{
memset(dp,0,sizeof(dp));
memset(val,0,sizeof(val));
memset(bag,0,sizeof(bag));
for(i=0;i<t;i++)
{
scanf("%d",&n);
bag[i][0]=n;
for(j=1;j<=n;j++)
scanf("%d %d",&bag[i][j],&val[i][j]);
}
for(i=0;i<t;i++)
for(j=m;j>=0;j--)
for(k=1;k<=bag[i][0];++k)
if(bag[i][k]<=j)
dp[j]=dp[j]>(dp[j-bag[i][k]]+val[i][k])?dp[j]:(dp[j-bag[i][k]]+val[i][k]);
printf("Case %d: %d\n",++cnt,dp[m]);
printf("\n");
}
return 0;
}
#include<string.h>
int bag[100][100],dp[2500],val[100][100];
int main()
{
int k,m,n,i,j,t,cnt=0;
while(scanf("%d %d",&t,&m)!=EOF)
{
memset(dp,0,sizeof(dp));
memset(val,0,sizeof(val));
memset(bag,0,sizeof(bag));
for(i=0;i<t;i++)
{
scanf("%d",&n);
bag[i][0]=n;
for(j=1;j<=n;j++)
scanf("%d %d",&bag[i][j],&val[i][j]);
}
for(i=0;i<t;i++)
for(j=m;j>=0;j--)
for(k=1;k<=bag[i][0];++k)
if(bag[i][k]<=j)
dp[j]=dp[j]>(dp[j-bag[i][k]]+val[i][k])?dp[j]:(dp[j-bag[i][k]]+val[i][k]);
printf("Case %d: %d\n",++cnt,dp[m]);
printf("\n");
}
return 0;
}
0 0
- 超市购物
- 超市购物预测
- 超市购物管理系统
- 超市购物系统
- CSU 1086 超市购物
- 超市购物简例
- csu----超市购物
- CSU1086-超市购物-分组背包
- 超市购物小票案例
- CSU 1086 超市购物 分组背包问题
- 探索性测试与超市购物
- C#控制台版超市购物系统
- csu1086(超市购物)(分组背包)
- 从沈阳超市的购物车谈起
- C#练习--实现超市购物结算
- 不用超市免费塑料袋 新玛特绿色通道引领环保购物
- 【UML】案例分析:新型超市购物自助系统
- 关联规则挖掘之Apriori算法实现超市购物
- iOS LeanCloud数据存储入门教程
- 数制转换问题:确定进制
- PickeView常用
- 人体行为识别特征点提取 综述很全面
- Hibernate 学习笔记:Hibernate 中 HQL 语句的用法
- 超市购物
- 视图
- 搭建struts2的架构
- pickerVIew - 点餐,每列单独选择
- Android NDK (学习笔记九) —— 同时编译多个源文件, 面向多种CPU架构编译
- HTML 标签(图片映射、热点)的使用
- Android的事件处理机制
- hdu 1267 下沙的沙子有几粒?
- 17 facade