Solution:

  一道很典型的dp题目,

  对于 20% 的数据(Bi=0),直接使用01背包即可。

  对于 100% 的数据,我们需要进行分析,当我们对 …a,b… 和 …b,a… (…表示的是相同的序列)进行求最大值时,我们只需对不同的序列(也就是a,b)的不同排列方式求最大值,当a消耗ta秒,每秒消耗x,b消耗tb秒,每秒消耗y时,我们得到这两种不同排列方式的不同消耗分别为 [ta*x+(ta+tb)*y]① 和 [tb*y+(ta+tb)*x]②. 对①②两式做差,得到 [ta*y-ta*x]③,令③<0得到ta*y<tb*x;于是我们便以④为compare函数进行排序,再进行01背包求解即可。

 

 #include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
const int maxm=3e3+;
int f[maxm];
struct cp{
int s,x,t;
}e[maxm];
bool cmp(cp a,cp b){return a.t*b.x<a.x*b.t;}
inline int max(int a,int b){return a>b?a:b;}
inline void init(){
memset(e,,sizeof e);
memset(f,,sizeof f);
}
inline int read(){
char ch=getchar();
int x=,f=;
while(ch<''||ch>''){if(ch=='-') f=-;ch=getchar();}
while(ch>=''&&ch<='') x=x*+(ch^),ch=getchar();
return x*f;
}
int main(){
/* freopen("score.in","r",stdin);
freopen("score.out","w",stdout);*/
int T=read(),n,t,ans=;
while(T--){
init();
ans=;
n=read(),t=read();
for(int i=;i<=n;i++) e[i].s=read(),e[i].x=read(),e[i].t=read();
sort(e+,e+n+,cmp);
for(int i=;i<=n;i++)
for(int j=t;j>=e[i].t;j--)
f[j]=max(f[j],f[j-e[i].t]+e[i].s-j*e[i].x);
for(int i=;i<=t;i++) ans=max(ans,f[i]);
/* for(int i=1;i<=n;i++){
for(int j=1;j<=t;j++) f[i][j]=f[i-1][j];
for(int j=t;j>=e[i].t;j--)
f[i][j]=max(f[i-1][j],f[i-1][j-e[i].t]+e[i].s-e[i].x*j);
}*/
for(int i=;i<=t;i++) ans=max(ans,f[i]);
printf("%d\n",ans);
}
return ;
}
/*
1
4 10
110 5 9
30 2 1
80 4 8
50 3 2
Ans: 88
*/

最优得分 score的更多相关文章

  1. [C++]3-1 得分(Score ACM-ICPC Seoul 2005,UVa1585)

    Question 习题3-1 得分(Score ACM-ICPC Seoul 2005,UVa1585) 题目:给出一个由O和X组成的串(长度为1~80),统计得分. 每个O的分数为目前连续出现的O的 ...

  2. [Swift]LeetCode861. 翻转矩阵后的得分 | Score After Flipping Matrix

    We have a two dimensional matrix A where each value is 0 or 1. A move consists of choosing any row o ...

  3. Solr 按照得分score跟指定字段相乘排序

    sort=product([you_field],query($q)) desc

  4. python小练习:读入一个考试得分,判断这个分数是哪个等级,并输出,考虑异常场景

    读入一个考试得分,判断这个分数是哪个等级,并输出. 等级:>=90 优 ,>=80且小于90 良,>=70 且小于80,中,>=60且<70及格  <60 不及格 ...

  5. ARC120D Bracket Score 2 (模拟)

    题面 给一个长度为 2 N 2N 2N 的序列 A A A,定义一个长度为 2 N 2N 2N 的合法括号序列的 得分(score) 为: 对于每对配对的括号 i , j i,j i,j, ∣ A i ...

  6. 机器学习&数据挖掘笔记_24(PGM练习八:结构学习)

    前言: 本次实验包含了2部分:贝叶斯模型参数的学习以及贝叶斯模型结构的学习,在前面的博文PGM练习七:CRF中参数的学习 中我们已经知道怎样学习马尔科夫模型(CRF)的参数,那个实验采用的是优化方法, ...

  7. 多准则决策模型-TOPSIS方法

    多准则决策–Multiple Criteria Decision Making 多准则决策–Multiple Criteria Decision Making 多准则决策是指在具有相互冲突.不可共度的 ...

  8. [codeforces 241]C. Mirror Box

    [codeforces 241]C. Mirror Box 试题描述 Mirror Box is a name of a popular game in the Iranian National Am ...

  9. 算法设计与分析——多边形游戏(DP)

    1.问题描述:   给定N个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且N条边按照顺时针依次编号为1~N.下图给出了一个N=4个顶点的多边形. 游戏规则 :(1) 首先 ...

随机推荐

  1. STM32中 BOOT0 BOOT1设置(问题:程序下载进去但无法运行)

    默认BOOT0接10K接地,BOOT1接10K接地 实际如果BOOT0不接10K到地,会导致程序能下载进去,但是无法运行情况

  2. python3 - 常用的操作数据库

    # 获取手机号数据表的中的数据 sql2 = 'SELECT shoujihao FROM shoujihao' self.cursor.execute(sql2) sjh_dates = self. ...

  3. python基础 - 切片

    今日学习内容 切片 取一个list或者tuple的部分数据是常见的操作 a = [1,2,3] 比如取第一个数我们可以用a[0]的方式,如果我们想取第一个和第二个就有点困难了,a[0-1]或者a[0] ...

  4. 火题大战Vol.1 A.

    火题大战Vol.1 A. 题目描述 给定两个数\(x\),\(y\),比较\(x^y\) 与\(y!\)的大小. 输入格式 第一行一个整数\(T\)表示数据组数. 接下来\(T\)行,每行两个整数\( ...

  5. PythonCrashCourse 第二章习题

    2.3 个性化消息:将用户的姓名存到一个变量中,并向该用户显示一条消息.显示的消息应非常简单,如"Hello Eric, would you like to learn some Pytho ...

  6. C++ 2的幂次方表示

    [题目描述] 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b).由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步 ...

  7. Mysql Lost connection to MySQL server at ‘reading initial communication packet', system error: 0

    在用Navicat for MySQL远程连接mysql的时候,出现了 Lost connection to MySQL server at ‘reading initial communicatio ...

  8. .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统

    项目名称:学生信息管理系统1.0 后台框架:.Net Core 3.1 + EF Core    yrjw.ORM.Chimp 前端框架:ASP.NET Core MVC  +  LayUI + Bo ...

  9. Linux之lldptool工具

    1. 描述当我们想在操作系统里面查看网口和交换机连接的状态信息,我们可以使用lldptool这个工具2.LLDP协议LLDP是Link Layer Discovery Protocol 链路层发现协议 ...

  10. jmeter中jdbc连接数据库——(一)

    所有jmeter基本组件功能本文不做介绍.jmeter要链接mysql数据库,首先得下载mysql jdbc驱动包 (注:驱动包的版本一定要与你数据库的版本匹配,驱动版本低于mysql版本有可能会导致 ...