//因为同一点结束的时间段会有多个,这里没考虑;
//无限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
*/

POJ3616【基础DP】的更多相关文章

  1. 「kuangbin带你飞」专题十二 基础DP

    layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathj ...

  2. 基础dp

    队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧. 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足.不过这些题目让我在一定程度上加 ...

  3. 基础DP(初级版)

    本文主要内容为基础DP,内容来源为<算法导论>,总结不易,转载请注明出处. 后续会更新出kuanbin关于基础DP的题目...... 动态规划: 动态规划用于子问题重叠的情况,即不同的子问 ...

  4. hdu 5586 Sum 基础dp

    Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Desc ...

  5. hdu 4055 Number String (基础dp)

    Number String Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  6. 训练指南 UVA - 10917(最短路Dijkstra + 基础DP)

    layout: post title: 训练指南 UVA - 10917(最短路Dijkstra + 基础DP) author: "luowentaoaa" catalog: tr ...

  7. 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP)

    layout: post title: 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP) author: "luowentaoaa" catalog: true ...

  8. M - 基础DP

    M - 基础DP Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descriptio ...

  9. lightoj1004【基础DP】

    从低端到顶端求个最大值: 思路: 基础DP,递推 #include<cstdio> #include<queue> #include<map> #include&l ...

随机推荐

  1. C指针——C语言手记

    近期敲代码的时候.发现自己非常多东西都開始忘了. 今天最终有机会好好总结一下指针.当做个笔记同一时候也希望对大家实用.假设有不对的地方.希望大家能帮我指正一下.然后我的实验环境是32位RHEL+ecl ...

  2. Ubuntu安装教程--Win7系统中含100M保留分区

    1.检查 Win7 保留分区 1)进入 Win7 打开库目录.在左側栏找到"计算机",瞄准点右键选择"管理"菜单: 2)在出来的管理面板左边找到"磁盘 ...

  3. linux 输入子系统(4) intput_dev 接口描述

    Name struct input_dev - represents an input device Synopsis struct input_dev { const char * name; // ...

  4. hdu4921 Map

    给最多10条链.每条链长度最大1000,链上每点有权值,每条链上按顺序,第i个点属于level[i]. 链上后一个点能够选的前提是前面的点都选了. 选择了一些点能够得到的分数是两部分加起来:1.所有点 ...

  5. java线程阻塞(sleep,suspend,resume,yield,wait,notify)

    为了解决对共享存储区的访问冲突,Java 引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一时刻准备好了 ...

  6. 网页Html代码优化及分析

  7. vscode部分文件夹无法打开

    vscode部分文件夹无法打开,无法正常显示 解决方案:关闭该IDE.找到C:\Users\XX\AppData\Roaming\Code,将Code文件夹删除.重新打开vsCode,即可恢复.但是以 ...

  8. mysql 数据库导入错误:40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET

    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RES ...

  9. iframe引入页面

    将外层css框架单独存放在一个css文件之中,将iframe的css单独写在一个css文件,避免iframe中的html,body等公共部分的样式冲突. 外层框架单独写在一个css,如: frame. ...

  10. POJ1087 A Plug for UNIX —— 最大流

    题目链接:https://vjudge.net/problem/POJ-1087 A Plug for UNIX Time Limit: 1000MS   Memory Limit: 65536K T ...