hdu 3033 I love sneakers!
I love sneakers!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2884 Accepted Submission(s): 1180
// dp 我将其按 鞋子牌子分类 ,然求 在至少有 i 种 牌子鞋子时,花 m 元钱最大可以达到的 价值
#include <iostream>
#include <algorithm>
#include <queue>
#include <math.h>
#include <stdio.h>
#include <string.h>
using namespace std;
int rb[][],rc[][];
int dp[],dp_num[],dpy[]; int main()
{
int N,M,K;
while(scanf("%d %d %d",&N,&M,&K)!=EOF){
int i,j,k;
int x,y,z;
for(i=;i<=;i++) rb[i][]=;
for(i=;i<=N;i++)
{ scanf("%d %d %d",&x,&y,&z);
rb[x][++rb[x][]]=y;
rc[x][rb[x][]]=z; }
memset(dp,,sizeof(dp));
memset(dp_num,,sizeof(dp_num));
memset(dpy,,sizeof(dpy));
for(i=;i<=K;i++){ int num=rb[i][];
for(j=;j<=num;j++){
for(k=M;k>=rb[i][j];k--){
if(dpy[k]<dp[k-rb[i][j]]+rc[i][j]&&dp_num[k-rb[i][j]]>=i-)
{
dpy[k]=dp[k-rb[i][j]]+rc[i][j];
dp_num[k]=i;
}
else if(dp_num[k]==i-&&dp_num[k-rb[i][j]]==i-){
dpy[k]=dp[k-rb[i][j]]+rc[i][j];
dp_num[k]=i;
} }
// printf("%d\n",dpy[M]);
for(k=;k<=M;k++)//这里需要同种鞋子确保更新被用到了
if(dpy[k]>dp[k])
dp[k]=dpy[k];
}
for(k=;k<=M;k++)//这里确保 在有用了i种牌子时记录了结果
dp[k]=dpy[k]; }
// printf("%d\n",dp[M]);
for(i=M;i>=;i--)
if(dp_num[i]==K)
break;
if(i>=)
printf("%d\n",dp[i]);
else
printf("Impossible\n");
} return;
}
hdu 3033 I love sneakers!的更多相关文章
- [HDU 3033] I love sneakers! (动态规划分组背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033 题意:给你K种品牌,每种品牌有不同种鞋,现在每种品牌至少挑一款鞋,问获得的最大价值,如果不能每种 ...
- hdu 3033 I love sneakers! 分组背包
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 3033 I love sneakers!(分组背包+每组至少选一个)
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 3033 I love sneakers! 我爱运动鞋 (分组背包+01背包,变形)
题意: 有n<=100双鞋子,分别属于一个牌子,共k<=10个牌子.现有m<=10000钱,问每个牌子至少挑1双,能获得的最大价值是多少? 思路: 分组背包的变形,变成了相反的,每组 ...
- HDU 3033 组合背包变形 I love sneakers!
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- HDU 3033 分组背包变形(每种至少一个)
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 3033(好题,分组背包)
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 【HDOJ】3033 I love sneakers!
分组背包. #include <stdio.h> #include <string.h> #define mymax(a, b) (a>b) ? a:b typedef ...
- 【HDU】I love sneakers!(分组背包)
看了许多的题解,都有题目翻译,很不错,以后我也这样写.直接翻译样例: /*鞋子的数量N[1, 100]; 拥有的金钱M[1, 1w]; 品牌数目[1, 10]*/ /*以下四行是对于每双鞋的描述*/ ...
随机推荐
- sqlplus中"-S"和"-L"用法
Usage: SQLPLUS [option] [logon] [start] <option> ::= -H | -V | [ [-L] [-M ] [-R ] [-S] ] &qu ...
- sharepoint 2010 masterpage中必须的Content PlaceHolder
Professional SharePoint 2010 Branding and Use
- CLSID {91493441-5A91-11CF-8700-00AA0060263B}错误
最近遇到一个棘手的问题,在C#中处理PPT转HTML的过程中需要用到COM组件,按照往常的设置如下: 1. Start->Run->DCOMCNFG->Component Servi ...
- Svg 画图(电池)
公司现在在做充电桩项目,其中要显示充电桩的电池充电情况,功能展示的时候要画图,之前做的时候准备使用HightChar来画,但是,hightchar好像没有这样的电池图形,最后,项目经理要我自己通过sv ...
- 深层解析:构建facebook应用商店推荐引擎
Under the Hood: Building the App Center recommendation engine As more apps on Facebook Platform ha ...
- 安装oracle 11g详细过程仅供参考
- 【搜索】BZOJ 3990: 【Sdoi 2015】排序
3990: [SDOI2015]排序 Time Limit: 20 Sec Memory Limit: 128 MBSubmit: 336 Solved: 164[Submit][Status][ ...
- [BEC][hujiang] Lesson02 Unit1:Working life ---Reading
2 1.1Working Life p7 reading attitudes to work Question6: 对于Attitude问题 1 I be willing/ unwilling to ...
- javascript div z-index, input tabindex属性说明
<html> <body> <form> 用户名: <input type="text" tabindex="1" / ...
- VIM的高级使用
VIM的高级使用 转:http://www.cnblogs.com/itech/archive/2012/02/22/2363111.html 1)一些常用的Vim配置,在~/.vimrc中 syn ...