The Highest Mark---hdu5501(问题转化 01背包)


题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5501
二维数组:
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
#define N 3100
int dp[N][N];
struct node
{
int A, B, C;
}a[N]; int cmp(node p, node q)
{
return p.C*q.B < p.B*q.C;
}
int main()
{
int T, n, t;
scanf("%d", &T);
while(T--)
{
memset(a, , sizeof(a));
memset(dp, , sizeof(dp));
scanf("%d%d", &n, &t);
for(int i=; i<n; i++)
{
scanf("%d%d%d", &a[i].A, &a[i].B, &a[i].C);
}
sort(a, a+n, cmp);
int ans = ;
for(int i=; i<n; i++)
{
for(int j=; j<=t; j++)
{
if(j<a[i].C)
dp[i+][j] = dp[i][j];
else
dp[i+][j] = max(dp[i][j], dp[i][j-a[i].C]+a[i].A-j*a[i].B);
ans=max(dp[i+][j],ans);
}
}
printf("%d\n", ans);
}
return ;
}
一维数组:
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>
#include<queue>
using namespace std;
#define N 3100
int dp[N];
struct node
{
int A, B, C;
}a[N]; int cmp(node p, node q)
{
return p.C*q.B < p.B*q.C;
}
int main()
{
int T, n, t;
scanf("%d", &T);
while(T--)
{
memset(a, , sizeof(a));
memset(dp, , sizeof(dp));
scanf("%d%d", &n, &t);
for(int i=; i<n; i++)
{
scanf("%d%d%d", &a[i].A, &a[i].B, &a[i].C);
}
sort(a, a+n, cmp);
int ans = ;
for(int i=; i<n; i++)
{
for(int j=t; j>=a[i].C; j--)
{
dp[j] = max(dp[j], dp[j-a[i].C]+a[i].A-j*a[i].B);
ans = max(ans, dp[j]);
} }
printf("%d\n", ans);
}
return ;
}
The Highest Mark---hdu5501(问题转化 01背包)的更多相关文章
- hdu1203--D - I NEED A OFFER!(转化01背包)
D - I NEED A OFFER! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- hdu 2955(概率转化,01背包)
Hot~~招聘——巴卡斯(杭州),壹晨仟阳(杭州),英雄互娱(杭州) (包括2016级新生)除了校赛,还有什么途径可以申请加入ACM校队? Robberies Time Limit: 2000/100 ...
- dp之01背包hdu3466(带限制的,当你所拥有的钱数大于某个限定值时才可以购买该物品)
题意:买东西,每个东西有三个特征值,p代表价格,q代表你手中钱必须不低于q才能买这个物品,v代表得到的价值. mark:又是变种01背包,每做一个变种的,就是一种提高.. 按照q - p以由大到小的顺 ...
- HDU 5501:The Highest Mark 01背包
The Highest Mark Accepts: 71 Submissions: 197 Time Limit: 2000/1000 MS (Java/Others) Memory Limi ...
- The Highest Mark(01背包)
The Highest Mark Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- HDU 5501 The Highest Mark 背包dp
The Highest Mark Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?p ...
- HDU5501/BestCoder Round #59 (div.2)The Highest Mark dp+贪心
The Highest Mark 问题描述 2045年的SD省队选拔,赛制和三十年前已是完全不同.一场比赛的比赛时间有 tt 分钟,有 nn 道题目. 第 ii 道题目的初始分值为 A_i(A_i \ ...
- hdu5501 The Highest Mark
Problem Description The SDOI in 2045 is far from what it was been 30 years ago. Each competition has ...
- HDU 5501 The Highest Mark
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5501 The Highest Mark Accepts: 32 Submissions: 193 ...
随机推荐
- lua自用的函数收集
这里记录一下我常用到的一些lua函数,不定期更新. 1.cirleAdd函数是用来一个循环自增的,其中num是最大值, startNum是起始值,stepNum是步长,startFlag默认真起始值从 ...
- Codeforces461A Appleman and Toastman 贪心
题目大意是Appleman每次将Toastman给他的Ni个数拆分成两部分后再还给Toastman,若Ni == 1则直接丢弃不拆分.而Toastman将每次获得的Mi个数累加起来作为分数,初始时To ...
- [uboot]uboot如何引导系统
转自:http://bbs.elecfans.com/jishu_455028_1_1.html 如6410的bootcmd和bootargs默认存在于uboot1.1.6/include/confi ...
- RP2837 IN1-IN2 对应关系 2路DI
RP2837 IN1-IN2 对应关系: IN1 ARM-IO2 PA16 IN2 ARM-IO6 PA4 root@sama5d3-linux:~ echo 16 > /sy ...
- CSS3 实现的一个简单的"动态主菜单" 示例
其实这个示例蛮无聊的 很简单 也没什么实际的用处. 主要是展示了 CSS3 如何实现动画效果. 写这个主要是想看一看 完成这样的效果 我到底要写多少代码. 同时和我熟悉的java做个比较. 比较结果不 ...
- CSS顶级技巧大放送,div+css布局必知
字体大小使用px 在一行内声明CSS 对比下面两个: h2 {font-size:18px; border:1px solid blue; color:#000; } h2 { font-siz ...
- php7 宏杂记
php.h zend_api.h ZEND_FN(name) ---> zif_##name PHP_FUNCTION(name) ...
- JavaWeb的编码问题
http://blog.csdn.net/yuhaiqiang_123/article/details/51811419
- python3----datetime模块分析
datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1. datetime模块定义了5个类,分别是 1.datetime ...
- Spring_day01--Spring的bean管理(xml方式)_属性注入介绍
Spring的bean管理(xml方式) Bean实例化的方式 1 在spring里面通过配置文件 创建对象 2 bean实例化(创建对象)三种方式实现 第一种 使用类的无参数构造创建(重点) Use ...