题目链接: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背包)的更多相关文章

  1. hdu1203--D - I NEED A OFFER!(转化01背包)

    D - I NEED A OFFER! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u ...

  2. hdu 2955(概率转化,01背包)

    Hot~~招聘——巴卡斯(杭州),壹晨仟阳(杭州),英雄互娱(杭州) (包括2016级新生)除了校赛,还有什么途径可以申请加入ACM校队? Robberies Time Limit: 2000/100 ...

  3. dp之01背包hdu3466(带限制的,当你所拥有的钱数大于某个限定值时才可以购买该物品)

    题意:买东西,每个东西有三个特征值,p代表价格,q代表你手中钱必须不低于q才能买这个物品,v代表得到的价值. mark:又是变种01背包,每做一个变种的,就是一种提高.. 按照q - p以由大到小的顺 ...

  4. HDU 5501:The Highest Mark 01背包

    The Highest Mark  Accepts: 71  Submissions: 197  Time Limit: 2000/1000 MS (Java/Others)  Memory Limi ...

  5. The Highest Mark(01背包)

    The Highest Mark Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  6. 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 ...

  7. HDU5501/BestCoder Round #59 (div.2)The Highest Mark dp+贪心

    The Highest Mark 问题描述 2045年的SD省队选拔,赛制和三十年前已是完全不同.一场比赛的比赛时间有 tt 分钟,有 nn 道题目. 第 ii 道题目的初始分值为 A_i(A_i \ ...

  8. hdu5501 The Highest Mark

    Problem Description The SDOI in 2045 is far from what it was been 30 years ago. Each competition has ...

  9. HDU 5501 The Highest Mark

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5501 The Highest Mark  Accepts: 32  Submissions: 193 ...

随机推荐

  1. RSYNC在zabbix中的检查

      RSYNC在zabbix中的检查 作者:高波 归档:学习笔记 2017/08/21 快捷键: Ctrl + 1    标题1 Ctrl + 2    标题2 Ctrl + 3    标题3 Ctr ...

  2. wrk -- 小巧轻盈的 http 性能测试工具.

    标签: wrk http 性能 | 发表时间:2015-06-21 00:55 | 作者:zjumty 出处:http://www.iteye.com 测试先行是软件系统质量保证的有效手段. 在单元测 ...

  3. Linux - Windows10连接linux服务器

    当我们通过windows连接服务器时,大多数用的是ssh客户端软件,推荐使用ssh,安全系数比较高.下面介绍用telnet连接服务器. 客户端:C:\Users\dell>systeminfo主 ...

  4. 关于如何自定义handler

    1.在web.config 中的webserver 下添加 <handlers> <add verb="*" path="*.html" ty ...

  5. java.lang下面有一个接口:Comparable(可比较的)

    对于自定义对象,Sort不知道规则,所以无法比较.这种情况下一定要定义排序规则.方式有两种: java.lang下面有一个接口:Comparable(可比较的) 可以让自定义对象实现一个接口,这个接口 ...

  6. 网易AI工程师面试常见知识

  7. C++关键字之friend

    原则上, 类的私有(private)和受保护(protected)成员不能从声明它们的同一类外部访问.但是, 此规则不适用于友元 "friends". 以friend关键字修饰的函 ...

  8. C# 流总结(Stream)

    本篇文章简单总结了在C#编程中经常会用到的一些流.比如说FileStream.MemoryStream. BufferedStream. NetWorkStream. StreamReader/Str ...

  9. P2483 [SDOI2010]魔法猪学院

    P2483 [SDOI2010]魔法猪学院 摘要 --> 题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世 ...

  10. 【翻译】Webpack 4 从0配置到生产模式

    查看原文 webpack 4 发布了! webpack 4 作为一个零配置的模块打包器 webpack 是强大的并且有许多独一无二的特点但是有一个痛点就是配置文件. 在中型到大型项目中为webpack ...