hdu 3033 I love sneakers! 分组背包
I love sneakers!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
There are several brands of sneakers that Iserlohn wants to collect, such as Air Jordan and Nike Pro. And each brand has released various products. For the reason that Iserlohn is definitely a sneaker-mania, he desires to buy at least one product for each brand.
Although the fixed price of each product has been labeled, Iserlohn sets values for each of them based on his own tendency. With handsome but limited money, he wants to maximize the total value of the shoes he is going to buy. Obviously, as a collector, he won’t buy the same product twice.
Now, Iserlohn needs you to help him find the best solution of his problem, which means to maximize the total value of the products he can buy.
1 4 6
2 5 7
3 4 99
1 55 77
2 44 66
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pi (4*atan(1.0))
#define eps 1e-14
const int N=1e4+,M=4e6+,inf=1e9+,mod=1e9+;
const ll INF=1e18+;
int dp[][N];
int v[][N],w[][N];
int si[];
int main()
{
int n,T,k;
while(~scanf("%d%d%d",&n,&T,&k))
{
memset(si,,sizeof(si));
memset(dp[],,sizeof(dp[]));
for(int i=;i<=n;i++)
{
int flag;
scanf("%d",&flag);
scanf("%d%d",&v[flag][si[flag]],&w[flag][si[flag]]);
si[flag]++;
}
for(int i=;i<=k;i++)
{
for(int t=;t<=T;t++)
dp[i][t]=-inf;
for(int t=;t<si[i];t++)
{
for(int j=T;j>=v[i][t];j--)
{
dp[i][j]=max(dp[i][j],dp[i][j-v[i][t]]+w[i][t]);
dp[i][j]=max(dp[i][j],dp[i-][j-v[i][t]]+w[i][t]);
}
}
}
if(dp[k][T]>=)
printf("%d\n",dp[k][T]);
else
printf("Impossible\n");
}
return ;
}
hdu 3033 I love sneakers! 分组背包的更多相关文章
- 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双,能获得的最大价值是多少? 思路: 分组背包的变形,变成了相反的,每组 ...
- HDU3033I love sneakers!(分组背包)
http://acm.hdu.edu.cn/showproblem.php?pid=3033 本题的意思就是说现在有n种牌子的鞋子,每种品牌有一些不同的鞋,每双鞋子都有一个特定的权值,现在要求每种品牌 ...
- I love sneakers!(分组背包HDU3033)
I love sneakers! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu3033 I love sneakers! 分组背包变形
分组背包要求每一组里面只能选一个,这个题目要求每一组里面至少选一个物品. dp[i, j] 表示前 i 组里面在每组至少放进一个物品的情况下,当花费 j 的时候,所得到的的最大价值.这个状态可以由三个 ...
- HDU 4341 Gold miner (分组背包)
先把线按照距离原点的距离排序,然后用叉积把在同一条直线上的点放在一起, 把在同一条线上的点中的前i个点当成一个点就转化成了分组背包. 写if(kas++) putchar('\n') 居然PE了,PE ...
- HDU 4341 Gold miner(分组背包)
题目链接 Gold miner 目标是要在规定时间内获得的价值总和要尽可能大. 我们先用并查集把斜率相同的物品分在同一个组. 这些组里的物品按照y坐标的大小升序排序. 如果组内的一个物品被选取了,那该 ...
- hdu3033 I love sneakers! 分组背包变形(详解)
这个题很怪,一开始没仔细读题,写了个简单的分组背包交上去,果不其然WA. 题目分析: 分组背包问题是这样描述的:有K组物品,每组 i 个,费用分别为Ci ,价值为Vi,每组物品是互斥的,只能取一个或者 ...
- [HDU 3033] I love sneakers! (动态规划分组背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3033 题意:给你K种品牌,每种品牌有不同种鞋,现在每种品牌至少挑一款鞋,问获得的最大价值,如果不能每种 ...
随机推荐
- Length of Last Word
class Solution { public: int lengthOfLastWord(string s) { ; ; while(s[i]&&s[i]==' ') i++; // ...
- Linux软件管理——yum命令详解
yum install <softwarename> #安装指定软件 yum remove <softwarename> #卸载指定软件 yum update <soft ...
- Oracle存储过程返回游标实例详解
复制代码 代码如下:CREATE OR REPLACE PROCEDURE PROCSENDEMAIL(P_TXT VARCHAR2, P_SUB VARCHAR2, P_SENDOR VARCHAR ...
- keepalived + nginx双主 实战
安装nginx nginx 下载地址 http://nginx.org/download/nginx-1.8.0.tar.gz 安装nginx的依赖关系 yum install pcre pcre-d ...
- 使用compile_scripts.php脚本,生成lua打包的zip,解决加密问题
@echo off set DIR=%~dp0 set TEMPLATE_ROOT=%DIR%.. echo %TEMPLATE_ROOT%\quick\bin\win32\php.exe echo ...
- python 拷贝文件夹下所有的文件到指定文件夹(不包括目录)
1.随便简单些写了一下.直接粘结代码,只是简单的实现一下,还很多需要完善和扩展的地方,比如忽略掉后缀文件,删除文件 如果排除的某些的话可以用: sourceF.find('.后缀')>0 2.注 ...
- gets()和getchar()还有getch()的区别
getch()和getchar()区别:1.getch(): 所在头文件:conio.h 函数用途:从控制台读取一个字符,但不显示在屏幕上例如: char ch;或int ch: getch();或c ...
- java 四舍五入 保留俩位小数
public static void main(String[] args) { String str="0"; BigDeci ...
- 使用repeater实现gridview的功能
<asp:Repeater ID="rptfindData" runat="server"> <HeaderTemplate> < ...
- ReentrantLock的原理学习
转载:https://my.oschina.net/andylucc/blog/651982 摘要 提到JAVA加锁,我们通常会想到synchronized关键字或者是Java Concurrent ...