//因为同一点结束的时间段会有多个,这里没考虑;
//无限wa;
const int N=1e6+7;
int b[N];
LL a[N];
LL dp[N];
struct asd{
int s;
int t;
LL w;
};
asd q[N];
bool cmp(asd z,asd x)
{
if(z.t<x.t)
return 1;
return 0;
}
int main()
{
int n,m,r;
while(~scanf("%d%d%d",&n,&m,&r))
{
int s,t;
LL w;
for(int i=0;i<m;i++){
scanf("%d%d%lld",&s,&t,&w);
q[i].s=s;
q[i].t=t;
q[i].w=w;
}
sort(q,q+m,cmp);
memset(a,0,sizeof(a)); for(int i=0;i<m;i++){
a[q[i].t]=q[i].w;
b[q[i].t]=q[i].s;
}
memset(dp,0,sizeof(dp)); int x;
for(int i=1;i<=n;i++)
{
x=b[i]-r;
if(x>=0){
dp[i]=max(dp[i-1],dp[x]+a[i]);
}
else{
dp[i]=max(a[i],dp[i-1]);
}
}
/* for(int i=1;i<=n;i++)
printf("%lld ",dp[i]);
puts("");*/
printf("%lld\n",dp[n]);
}
return 0;
}
/*
12 4 2
1 2 8
10 12 19
3 5 24
7 10 31 12 4 2
1 2 8
10 12 19
3 6 24
7 10 31
*/

后面想的是那我for一下前面的,然后找到有那个截止点的数据,然后找一个最优的。后来没有搞成n+m,就理应吃T了一发。

已AC;

#include<iostream>
#include<cstdio>
#include<math.h>
#include<queue>
#include<map>
#include<stdlib.h>
#include<string>
#include<string.h>
#include<algorithm>
using namespace std;
typedef long long LL;
#define INF 0x3f3f3f3f
#define PI acos(-1.0) //因为同一点结束的时间段会有多个,这里没考虑;
//无限wa;
const int N=1e6+7;
int b[N];
LL a[N];
LL dp[N];
struct asd{
int s;
int t;
LL w;
};
asd q[N]; bool cmp(asd z,asd x)
{
if(z.t<x.t)
return 1;
return 0;
} int main()
{
int n,m,r;
while(~scanf("%d%d%d",&n,&m,&r))
{
int s,t;
LL w;
for(int i=0;i<m;i++){
scanf("%d%d%lld",&s,&t,&w);
q[i].s=s;
q[i].t=t;
q[i].w=w;
}
memset(dp,0,sizeof(dp));
for(int i=0;i<m;i++){
dp[q[i].t]=max(q[i].w,dp[q[i].t]);
}
sort(q,q+m,cmp); int x;
int i,j=0;
for(i=1;i<=n;i++){
dp[i]=max(dp[i],dp[i-1]);
for(;j<m;){
if(q[j].t==i){
x=q[j].s-r;
if(x<0) x=0;
dp[i]=max(dp[i],dp[x]+q[j].w);
j++;
}
else
break;
}
} /* for(int i=1;i<=n;i++){
printf("%d ",dp[i]);
}
puts("");*/ printf("%d\n",dp[n]);
}
return 0;
} /*
12 4 2
1 2 8
10 12 19
3 5 24
7 10 31 12 4 2
1 2 8
10 12 19
3 6 24
7 10 31
*/

最新文章

  1. 转一篇Unity客户端与Java服务器的通信
  2. 周赛-Clique in the Divisibility Graph 分类: 比赛 2015-08-02 09:02 23人阅读 评论(3) 收藏
  3. 未来WEB程序员
  4. 【C#】 装箱 (boxing) 和拆箱 (unboxing)
  5. 自学php笔记
  6. Hadoop 2.2 YARN分布式集群搭建配置流程
  7. 1053: [HAOI2007]反素数ant - BZOJ
  8. HDOJ 2011 多项式求和
  9. node实现创建服务器获取wx jssdk签名
  10. 访问Access日期字段
  11. kubernetes云平台管理实战: 集群部署(一)
  12. reduction_indices in tensorflow
  13. java中的成员变量、静态变量与局部变量
  14. YSQL获取自增ID的四种方法(转发)
  15. BZOJ1005:[HNOI2008]明明的烦恼(组合数学,Prufer)
  16. 【翻译】使用Vuex解决Vue中的身份验证
  17. ASP.Net Core 2.2 MVC入门到基本使用系列 (一)
  18. VB中的正则表达式
  19. lintcode-464-整数排序 II
  20. Zookeeper java api

热门文章

  1. MySQL的字符编码体系(一)——数据存储编码
  2. ISC DHCP: Enterprise grade solution for configuration needs
  3. SpringMVC框架下使用jfreechart绘制折线图,柱状图,饼状图
  4. PHP中的多行字符串传递给JavaScript方法两则
  5. SPOJ VLATTICE Visible Lattice Points (莫比乌斯反演基础题)
  6. SSM整理笔记1——SSM网站初步功能设计
  7. Studio 3T for MongoDB连接51.212复制集
  8. Android应用之——最新版本号SDK V2.4实现QQ第三方登录
  9. ubuntu gcc低版本过低引起错误
  10. 阶乘问题(大数阶乘)简单 n! (一个大数与一个小数相乘的算法 、一个大数与一个小数的除法算法 *【模板】 )