csu----超市购物
来源:互联网 发布:观念 知乎 编辑:程序博客网 时间:2024/06/11 16:22
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 100350 60020 70030 800230 50040 600160 2002 5002200 1000260 12001280 300
Sample Output
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN=35;const int MAXM=2005;int weight[MAXN][MAXN],value[MAXN][MAXN];int dp[MAXM];int main(){ int k,m; int c=1; while(~scanf("%d %d",&k,&m)) { memset(dp,0,sizeof(dp)); memset(weight,0,sizeof(weight)); memset(value,0,sizeof(value)); for(int i=1; i<=k; i++) { int n; scanf("%d",&n); weight[i][0]=n; for(int j=1; j<=n; j++) scanf("%d%d",&weight[i][j],&value[i][j]); } for(int i=1; i<=k; i++) for(int j=m; j>=0; j--) for(int p=1; p<=weight[i][0]; p++) if(weight[i][p]<=j) dp[j]=max(dp[j],dp[j-weight[i][p]]+value[i][p]); printf("Case %d: %d\n\n",c++,dp[m]); } return 0;}
Case 1: 1400Case 2: 1300
阅读全文
0 0
- CSU 1086 超市购物
- csu----超市购物
- CSU 1086 超市购物 分组背包问题
- 超市购物
- 超市购物预测
- 超市购物管理系统
- 超市购物系统
- 超市购物简例
- CSU1086-超市购物-分组背包
- 超市购物小票案例
- 探索性测试与超市购物
- C#控制台版超市购物系统
- csu1086(超市购物)(分组背包)
- 从沈阳超市的购物车谈起
- C#练习--实现超市购物结算
- 不用超市免费塑料袋 新玛特绿色通道引领环保购物
- 【UML】案例分析:新型超市购物自助系统
- 关联规则挖掘之Apriori算法实现超市购物
- 5月16日云栖精选夜读:从0到1构建大数据生态系列1:数据蛮荒中的拓荒之举
- 对象的创建、回收、new和malloc
- 用opencsv文件读写CSV文件
- MapReduce和Hive支持递归子目录作为输入
- Android 监听短信(同时监听广播和数据库)
- csu----超市购物
- RTMP、RTSP、HTTP视频协议直播流地址
- 按钮点击事件和在活动中使用Toast
- Git 远程分支的pull与push
- Linux(三)文件
- 关于kotlin的简单介绍
- ibatis
- underscore.js如何实现全局变量和链式调用
- 关于有时候GridView的OnItemClickListener点击失效问题