题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033

题意:给你K种品牌,每种品牌有不同种鞋,现在每种品牌至少挑一款鞋,问获得的最大价值,如果不能每种品牌都挑到则输出Impossible

自己太弱了!!!!!这个题都想不出来!!!!!还要看题解!!!!!!

设计状态dp[i][j]代表从前i种品牌里花了不超过j元钱。

那么状态转移可以这样:

1.我只买第i种品牌的第k个。

2.我在第i种品牌里不光买第k个。

变成状态转移方程就是:

1. dp[i][j] = dp[i-1][j-p[i][k]]+v[i][k];

2. dp[i][j] = dp[i][j-p[i][k]]+v[i][k];

对于每组,是一个01背包问题。

两个取最大。

本人太弱了。。这种题还看题解- -

代码:

 #include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <map>
#include <iterator>
#include <vector>
using namespace std;
typedef long long LL; int N,M,K;
int p[][],v[][];
int dp[][];
const int INF = ; int main(){
while(scanf("%d%d%d",&N,&M,&K)!=EOF){
memset(p,,sizeof(p));
memset(v,,sizeof(v));
for(int i=;i<=N;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
p[x][++p[x][]] = y;
v[x][++v[x][]] = z;
}
for(int i=;i<;i++){
for(int j=;j<;j++){
dp[i][j] = -INF;
}
}
// dp[0][0] = 0;
for(int i=;i<=K;i++){
for(int k=;k<=p[i][];k++){
for(int j=M;j>=p[i][k];j--){
dp[i][j] = max(dp[i][j],max(dp[i-][j-p[i][k]]+v[i][k],dp[i][j-p[i][k]]+v[i][k]));
}
}
}
if(dp[K][M]<) puts("Impossible");
else printf("%d\n",dp[K][M]);
}
return ;
}

[HDU 3033] I love sneakers! (动态规划分组背包)的更多相关文章

  1. 【HDU】I love sneakers!(分组背包)

    看了许多的题解,都有题目翻译,很不错,以后我也这样写.直接翻译样例: /*鞋子的数量N[1, 100]; 拥有的金钱M[1, 1w]; 品牌数目[1, 10]*/ /*以下四行是对于每双鞋的描述*/ ...

  2. hdu 3033 I love sneakers! 分组背包

    I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. hdu 3033 I love sneakers!(分组背包+每组至少选一个)

    I love sneakers! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. HDU 3033 I love sneakers! 我爱运动鞋 (分组背包+01背包,变形)

    题意: 有n<=100双鞋子,分别属于一个牌子,共k<=10个牌子.现有m<=10000钱,问每个牌子至少挑1双,能获得的最大价值是多少? 思路: 分组背包的变形,变成了相反的,每组 ...

  5. HDU 1712 ACboy needs your help (分组背包模版题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712 有n门课,和m天时间.每门课上不同的天数有不同的价值,但是上过这门课后不能再上了,求m天里的最大 ...

  6. Codeforces 946 D.Timetable-数据处理+动态规划(分组背包) 处理炸裂

    花了两个晚上来搞这道题. 第一个晚上想思路和写代码,第二个晚上调试. 然而还是菜,一直调不对,我的队友是Debug小能手呀(真的是无敌,哈哈,两个人一会就改好了) D. Timetable   tim ...

  7. 【HDU - 4341】Gold miner(分组背包)

    BUPT2017 wintertraining(15) #8B 题意 给出每个黄金的坐标.价值及耗时,同一方向的黄金只能依次取,求T时间内收获的最大值. 题解 同一方向,物品前缀和构成的组合,相当于是 ...

  8. BZOJ1296 [SCOI2009]粉刷匠 动态规划 分组背包

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1296 题意概括 有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝 ...

  9. hdu 1712 ACboy needs your help 分组背包

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1712 Problem ...

随机推荐

  1. 透明度兼容性(ie8以上)

    转载:http://www.cnblogs.com/PeunZhang/p/4089894.html demo代码:文件中,背景透明,文字不透明的研究和使用.zip

  2. Eclipse设置UTF-8

    将Eclipse所有的设置都设置为UTF-8: 1) Window -> Preferences -> General -> Workspace -> Text file en ...

  3. VS2013 启动时遇到空白窗口

    安装了VS2013 ,然后打开,遇到空白窗口,等了10几秒无果. 我先是修复了VS2013,然后再打开VS2013,则显示登录微软账号的窗口.修复完2013时正好18:08,可能是下班了可以上网,才正 ...

  4. 访问本机的WEB API 报400错误

    当时用的IP是127.0.0.1 报400错误,换成 localhost 后正常.

  5. SSH_框架整合6--修改Edit员工信息

    SSH_框架整合6--修改Edit员工信息 1 加上修改Edit键 (1)emp-list.jsp <td> <a href="emp-input?id=${id }&qu ...

  6. IntelliJ IDEA设置JDK

    File→Project Structure→Project SDK→New   来自为知笔记(Wiz)

  7. uboot在nandflash和norflash是如何运行的

    转自:http://www.aiuxian.com/article/p-2796357.html 电子产品如果没有了电,就跟废品没什么区别,是电赋予了他们生命,然而程序则是他们的灵魂. 小时候一直很好 ...

  8. CSS3字体图标

    网址:http://icomoon.io/http://iconfont.cn/  阿里巴巴字体库 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...

  9. 在Java中使用Memcached(转)

    memcache的Java客户端调用,在网上还是有些少,很多都是php的.如何要想用Java调用memcache的服务,首先要有客户端的支持,我们先下载一个客户端吧.下载地址:https://gith ...

  10. 1.html5 学习要求,Html 5发展历程

    以下是我在学习html5,项目中用到的关于html5的总结和心得. 1.学习要求 Html4.01,xhtml Css2 Javascript 耐心,动手,毅力. 2.Html 发展历程 Html1. ...