思路:每次枚举每个工人的右边界j,维护最优的左边界k。那么dp[j]=max(dp[j],dp[k]+(j-k)*w[i].p);

对于每个工人的初值k=w[i].s-1;

令x=j-w[i].l,如果(k-x)*w[i].p>dp[k]-dp[x],则k=x。

#include<set>
#include<map>
#include<cmath>
#include<queue>
#include<cstdio>
#include<vector>
#include<string>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define pb push_back
#define mp make_pair
#define Maxn 170010
#define Maxm 200010
#define LL __int64
#define Abs(x) ((x)>0?(x):(-x))
#define lson(x) (x<<1)
#define rson(x) (x<<1|1)
#define inf 100000
#define lowbit(x) (x&(-x))
#define clr(x,y) memset(x,y,sizeof(x))
#define Mod 1000000007
using namespace std;
int dp[Maxn];
struct Workers{
int s,p,l;
int operator<(const Workers &temp) const{
return s<temp.s;
}
}w[];
int main()
{
int n,i,j,K,k,x;
//freopen("aa.txt","r",stdin);
while(scanf("%d%d",&n,&K)!=EOF){
clr(dp,);
for(i=;i<=K;i++){
scanf("%d%d%d",&w[i].l,&w[i].p,&w[i].s);
}
sort(w+,w++K);
int ed,st,temp;
for(i=;i<=K;i++){
int ed=w[i].s+w[i].l-;
k=w[i].s-;
for(j=ed;j>=w[i].s;j--){
x=j-w[i].l;
x=max(x,);
if((k-x)*w[i].p>dp[k]-dp[x])
k=x;
dp[j]=max(dp[j],dp[k]+(j-k)*w[i].p);
}
for(j=;j<=n;j++)
dp[j]=max(dp[j],dp[j-]);
}
printf("%d\n",dp[n]);
}
return ;
}

最新文章

  1. Parameter &#39;id&#39; not found. Available parameters are [1, 0, param1, param2]异常
  2. AD域的安装
  3. [HDOJ2473]Junk-Mail Filter(并查集,删除操作,马甲)
  4. 字符编码 ASCII,Unicode 和 UTF-8 概念扫盲
  5. C++编程练习(4)----“实现简单的栈的链式存储结构“
  6. POJ3228 并查集或二分最大流枚举答案
  7. gitignore文件的作用
  8. Linux网络属性管理
  9. Idea如果添加Maven模块
  10. Python:Day53 Template基础
  11. 英语口语练习系列-C33-露营-谈论日期-离思
  12. 【CF613D】Kingdom and its Cities 虚树+树形DP
  13. GEC6818交叉开发环境搭建拟稿
  14. 自己实现数据结构系列一---ArrayList
  15. go https json
  16. 一些浩辰设置及它的bug?
  17. yarn的学习-1-包管理工具
  18. 安装Python3.6.4后,在使用numpy时报错RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  19. ubuntu修改root密码
  20. input 文件上传

热门文章

  1. 图片 文字 input等垂直居中对齐
  2. Slave延迟很大的优化方法总结(MySQL优化)
  3. AspNet上传文件的几个控件
  4. CMSIS Example - osTimer osTimerCreate osTimerStart
  5. 什么是双线双IP,什么叫双线双IP
  6. 10分钟学会基于ASP.NET的 JQuery实例 (转)
  7. C++ Code_ImageList
  8. 一步步学Mybatis-实现多表联合查询(4)
  9. Swift2.0 中的String(三):类型转换
  10. 放肆的使用UIBezierPath和CAShapeLayer画各种图形