HDU 5410(2015多校10)-CRB and His Birthday(全然背包)
题目地址:HDU 5410
题意:有M元钱,N种礼物,若第i种礼物买x件的话。会有Ai*x+Bi颗糖果,现给出每种礼物的单位价格、Ai值与Bi值。问最多能拿到多少颗糖果。
思路:全然背包问题。
dp[j][1]在当前物品时花钱为j的而且买过当前物品的最大值。
dp[j][0]不买当前这件物品此前花钱为j的的最大值。
每种物品的价值随Ai线性变化,可是不随B[i]线性变化。B[i]仅是在第一次挑选第i件物品是才算入,其它时候均不算入。
所以我们能够写出状态转移方程:
dp[j][0]=max(dp[j][1],dp[j][0]);
dp[j][1]=max(dp[j-q[i].w][0]+q[i].a+q[i].b,dp[j-q[i].w][1]+q[i].a);
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <sstream>
#include <algorithm>
#include <set>
#include <queue>
#include <stack>
#include <map>
#include <bitset>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
typedef long long LL;
const int inf=0x3f3f3f3f;
const double pi= acos(-1.0);
const double esp=1e-7;
const int Maxn=2010;
struct node
{
int a,b,w;
}q[Maxn];
int dp[Maxn][2];
int main()
{
int T,n,m,i,j;
scanf("%d",&T);
while(T--){
scanf("%d %d",&m,&n);
for(i=1;i<=n;i++)
scanf("%d %d %d",&q[i].w,&q[i].a,&q[i].b);
memset(dp,0,sizeof(dp));
for(i=1;i<=n;i++){
for(j=0;j<=m;j++){
dp[j][0]=max(dp[j][1],dp[j][0]);
if(j>=q[i].w)
dp[j][1]=max(dp[j-q[i].w][0]+q[i].a+q[i].b,dp[j-q[i].w][1]+q[i].a);
}
}
printf("%d\n",max(dp[m][0],dp[m][1]));
}
return 0;
}
HDU 5410(2015多校10)-CRB and His Birthday(全然背包)的更多相关文章
- HDU 5407(2015多校10)-CRB and Candies(组合数最小公倍数+乘法逆元)
题目地址:pid=5407">HDU 5407 题意:CRB有n颗不同的糖果,如今他要吃掉k颗(0<=k<=n),问k取0~n的方案数的最小公倍数是多少. 思路:首先做这道 ...
- hdu 5288||2015多校联合第一场1001题
pid=5288">http://acm.hdu.edu.cn/showproblem.php?pid=5288 Problem Description OO has got a ar ...
- hdu5414(2015多校10)--CRB and String(字符串匹配)
题目链接:pid=5414">点击打开链接 题目大意:有A.B两个字符串.如今有一种操作能够在A的随意一个字符x后面添加一个字符y(x.=y).问能不能将A变为B. 首先假设A能够变成 ...
- HDU 5358(2015多校联合训练赛第六场1006) First One (区间合并+常数优化)
pid=5358">HDU 5358 题意: 求∑i=1n∑j=in(⌊log2S(i,j)⌋+1)∗(i+j). 思路: S(i,j) < 10^10 & ...
- HDU 5373(2015多校7)-The shortest problem(模拟%11)
题目地址:pid=5373">HDU 5373 题意:给你一个数n和操作次数t,每次操作将n的各位数之和求出来放在n的末尾形成新的n,问t次操作后得到的n能否够被11整除. 思路:就是 ...
- HDU 5326(2015多校3)-Work(dfs)
题目地址:pid=5326">HDU 5326 题意:给一张有向图n个点.n - 1(....输入n-1)条边. A指向B代表A管理B.然后能够间接管理,比方A管理B,B管理C.则A管 ...
- hdu 5361 2015多校联合训练赛#6 最短路
In Touch Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total ...
- HDU 5371(2015多校7)-Hotaru's problem(Manacher算法求回文串)
题目地址:HDU 5371 题意:给你一个具有n个元素的整数序列,问你是否存在这样一个子序列.该子序列分为三部分,第一部分与第三部分同样,第一部分与第二部分对称.假设存在求最长的符合这样的条件的序列. ...
- 2015暑假多校联合---CRB and His Birthday(01背包)
题目链接 http://acm.split.hdu.edu.cn/showproblem.php?pid=5410 Problem Description Today is CRB's birthda ...
随机推荐
- CC2540 与 CC2541 差别 1
CC2540 的 1234 PIN 是 USB 功能,4 PIN 是 USB 的电压输入引脚. CC2541 没有 USB 功能.它的 1234 PIN 是 I2C 功能,为了与 CC2540 引脚兼 ...
- ios 导航栏 点击barbutton的按钮 下拉列表
环境:xocde5.0.2+ios7.0.1 1.导航栏 ----点击科目--------下拉列表 代码:NGRightTableViewViewController.h #import <UI ...
- zzulioj--1638--Happy Thanksgiving Day - Say 3Q I(水题)
1638: Happy Thanksgiving Day - Say 3Q I Time Limit: 1 Sec Memory Limit: 128 MB Submit: 91 Solved: ...
- 【BZOJ 2152】 聪聪可可
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2152 [算法] 点分治 [代码] #include<bits/stdc++.h ...
- Java底层四个核心技术
今天早起失败,加上忙碌的一天加班工作,没按计划总结Java相关的技术,刚看到下面的文章总结的不错,转载一下. Java有哪四个核心技术?首先,我们要了解一下java核心技术的重要性,它可以帮助我们举一 ...
- POJ 1252 DP
题意:给你6个数.让你求出1~100范围内的数 最优情况下由这六个数加减几步得到. 输出平均值和最大值. 思路: 我就随便写了写,,,感觉自己的思路完全不对. 但是交上去 AC了!!! 我先当减法 不 ...
- DateTime? 定义的日期变量如何format
DateTime? dateTime; dateTime.Value.ToString("yy-MM-dd")
- webpack配置的学习
1.把不需要打包的文件复制到打包后的文件夹里 2.通过 Plugin 把注入到 bundle.js 文件里的 CSS 提取到单独的文件中
- windows及git常用命令
windows常用命令: 创建文件夹:md 文件夹名 创建空的文件:type nul>文件名 创建有内容文件:echo "内容">文件名 查看文件内容:type +文件 ...
- ddk安装失败后的处理
7600.16385.1版本的DDK,在xp的本上死活按不上,怎么办呢?自己就把其他机器上安装的DDK目录,拷贝过来. 怎么建编译环境呢? 查看x86 Checked Build Environmen ...