题意:

给你n个任务,每个任务有一个起始时间,持续时间,一个权值;

问你怎么分配得到最大值

思路:

数据好大。。百度了一发意识到自己好菜啊!背包的特性。

dp[i]代表前 i 个能构成的最大值。

对于每个任务看成一个背包,背包取的点是固定的

背包取的话肯定是离他开始时间最近的那个点,dp[i]=dp[k(结束时间最靠近他的起始时间的点)]+w[i];

不取的话dp[i]=dp[i-1];

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=1e5+10; int dp[N];
struct asd{
int L,R;
int w;
};
asd q[N];
int n; bool cmp(asd x,asd y)
{
return x.R<y.R;
} int Find(int left,int right,int x)
{
while(left<right)
{
int mid=left+(right-left+1)/2;
if(q[mid].R<x)
left=mid;
else
right=mid-1;
}
return left;
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int x;
scanf("%d",&n);
q[0].L=q[0].R=q[0].w=0;
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&q[i].L,&x,&q[i].w);
q[i].R=q[i].L+x;
}
sort(q+1,q+n+1,cmp);
int k;
for(int i=1;i<=n;i++)
{
k=Find(0,i-1,q[i].L);
dp[i]=max(dp[i-1],dp[k]+q[i].w);
}
printf("%d\n",dp[n]);
}
return 0;
}

SPOJ130 【DP·背包选取特性】的更多相关文章

  1. 【bzoj1688】[USACO2005 Open]Disease Manangement 疾病管理 状态压缩dp+背包dp

    题目描述 Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is running through the farm. Far ...

  2. URAL_1018 Binary Apple Tree 树形DP+背包

    这个题目给定一棵树,以及树的每个树枝的苹果数量,要求在保留K个树枝的情况下最多能保留多少个苹果 一看就觉得是个树形DP,然后想出 dp[i][j]来表示第i个节点保留j个树枝的最大苹果数,但是在树形过 ...

  3. 1354 选数字 DP背包 + 数学剪枝

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1354&judgeId=187448 其实这题和在若干个数字中,选 ...

  4. P2015 二叉苹果树[树形dp+背包]

    题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端连接的结点的编号来 ...

  5. hdu1561 The more, The Better (树形dp+背包)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1561 思路:树形dp+01背包 //看注释可以懂 用vector建树更简单. 代码: #i ...

  6. HDU 5234 DP背包

    题意:给一个n*m的矩阵,每个点是一个蛋糕的的重量,然后小明只能向右,向下走,求在不超过K千克的情况下,小明最终能吃得最大重量的蛋糕. 思路:类似背包DP: 状态转移方程:dp[i][j][k]--- ...

  7. HDU4276 The Ghost Blows Light(树形DP+背包)

    题目大概说一棵n个结点树,每个结点都有宝藏,走过每条边要花一定的时间,现在要在t时间内从结点1出发走到结点n,问能获得最多的宝藏是多少. 放了几天的题,今天拿出来集中精力去想,还是想出来了. 首先,树 ...

  8. HDU 4003 (树形DP+背包)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4003 题目大意:有K个机器人,走完树上的全部路径,每条路径有个消费.对于一个点,机器人可以出去再回来 ...

  9. ZOJ 3626(树形DP+背包+边cost)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3626 题目大意:树中取点.每过一条边有一定cost,且最后要回 ...

随机推荐

  1. 关于erlang解析json数据

    JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读.json的数据格式是文本文档格式的一种.在erlang中可以参考mochiwe ...

  2. 使用 lstat 函数获取文件信息

    前言 在之前的文章中,描述过如何用 fcntl 函数改变文件的状态标记.但,文件还有很多信息,如文件类型,权限设置,设备编号,访问时间等等.如果要获取这些信息,则使用函数 lstat 可以轻松达到这个 ...

  3. 图像滤镜艺术---PS图层混合模式之明度模式

    本文将介绍PS图层混合模式中比較复杂 的"明度"模式的算法原理及代码实现内容. 说到PS的图层混合模式,计算公式都有,详细代码实现也能找到,可是,都没有完整介绍全部图层混合模式的代 ...

  4. (转)c#(wince)中使用多线程访问winform中控件的问题

    我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题.然而我们并不能用传统方法来做这个问题,下面我将详细的介绍. 首先来看传统方法:  public partial ...

  5. Refusing to install package with name “XXXX”

    我的执行步骤 我创建了一个名叫express的文件夹,想在这个工程中学习express 进入该文件夹,执行npm init来初始化package.json文件,一直回车. 我们会发现当前文件夹多了一个 ...

  6. Duilib学习之基础(一个SDK程序)

    版权声明:本文为灿哥哥http://blog.csdn.net/caoshangpa原创文章,转载请标明出处. https://blog.csdn.net/caoshangpa/article/det ...

  7. 无法启动FTP站点,服务目前停止

    在本地搭建了一个FTP服务器(windows搭建FTP服务器实战),再启动的时候提示错误: 错误提示信息: 根据提示可以查出问题原因:FTP服务没有开启 启动服务,再次重启站点服务.一切OK. 亲测好 ...

  8. linux iptables:安全应用,防火墙

    iptables:安全应用,防火墙 windows和linux都有防火墙,企业的边缘会部署防火墙保证企业内部的局域网是安全的.针对个人电脑会有防火墙保证系统是安全的. 防火墙是唯一通道. 防火墙分类( ...

  9. Zygote进程介绍【转】

    本文转载自:http://blog.csdn.net/yangwen123/article/details/17258023 Zygote进程介绍   在Android系统中,存在不同的服务,这些服务 ...

  10. sql 逻辑运算符 优先级

    SELECT * FROM tl_documentation WHERE storehouse_id =2 OR customer_id =2 AND product_id =20 ORDER BY  ...