疯狂的bLue

疯狂的bLue

Time Limit: 1000MS Memory Limit: 65536KB

Submit Statistic

Problem Description

众所周知神秘的 ACM 实验室有一个史诗级的出题狂魔,名曰 bLue。最近 bLue 又露出了邪恶的笑,原来是 bLue 接了为校赛出题的单子。

距离校赛开始还有 N 小时,由于各种奇怪的原因出题组可以出题的时间并不固定,大致可以分为M个时间段。每个时间段可以出的题目数也可能不同。同时由于出题是个煞费心血的事情,所以每个出题时间段结束后,善良的 bLue 会让大家休息 R (1 ≤ R ≤ N ) 小时,以便为接下来的出题事业继续奋斗。

为了能为校赛准备尽可能多的题目以备不时之需,bLue 需要好好地规划好这 N 小时如何安排,当然作为唯一的长者,bLue 一下子就为大家规划好了如何安排出题的时间段。

现在 bLue 想考考你在他完美的安排下出题组最多可以出多少个题目?

Input

测试数据有多组,输入直到文件结束。

对于每组数据:

  • 第一行输入三个数 N (1 ≤ N ≤ 1,000,000), M (1 ≤ M ≤ 1,000), R (1 ≤ R ≤ N)
  • 接下来有 M 行输入,每一行输入三个数 Si (0 ≤ Si < N), Ei (Si < Ei ≤ N) ,Vi (1 ≤ Vi ≤ 1,000,000) (0 < i <= M),分别表示为第 i 个时间段的开始时间,第 i 段的结束时间,第 i 个时间段可以出的题目数

Output

对于每组数据,输出出题组最多可以出的题的数目。

Example Input

15 5 3
1 4 5
6 9 4
3 5 2
7 10 8
11 15 2

Example Output

13

Hint

假设出题组在第 5 小时出完了一个时间段的题,他们需要休息 3 小时 (R = 3),那么他们在第 8 小时又可以继续开始出题了。

Author

「“师创杯”山东理工大学第九届ACM程序设计竞赛 热身赛」Ninaye

开始想成了贪心,后来发现是自己想的太简单了,问了学长才知道是数位dp,参考了考试贴出的官方代码写出来的、、、

#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
struct node
{
    int r,l,value;
} mmp[10010];
ll dp[10010];
bool cmp(node a,node b)
{
    if(a.r==b.r)
        return a.l < b.l;
    return a.r < b.r;
}
int main()
{
    int n,m,R;
    while(cin >> n >> m >> R)
    {
        for(int i=0;i<m;i++)
            cin >> mmp[i].l >> mmp[i].r >> mmp[i].value;
        sort(mmp,mmp+m,cmp);
        dp[0] = mmp[0].value;
        ll ans = mmp[0].value;
        for(int i=1;i<m;i++)
        {
            ll maxn = 0;
            for(int j=0;j<i;j++)
            {
                if(mmp[j].r + R <= mmp[i].l)//判断时间是否符合要求能行
                    maxn = max(maxn,dp[j]);
            }
            dp[i] = maxn + mmp[i].value;//更新dp,注意如果时间不行maxn为0的,还是初始化状态,如果此时value大,那初始化状态更新
            ans = max(dp[i],ans);
        }
        cout << ans << endl;
    }
    return 0;
}
时间: 2024-10-05 04:41:13

疯狂的bLue的相关文章

Qt Quick实现的疯狂算数游戏

使用 Qt Quick 写了个小游戏:疯狂算数.支持 Windows 和 Android 两个平台. 就差您这一票了亲:博客之星评选,点击投我一票,谢谢.投过了也可以点哦,每天都可以投投一票. 游戏简单,但牵涉到下面你的 Qt Quick 主题: 自己实现一个按钮 自适应分辨率 国际化 QML与C++混合编程 APK图标设置 APK名称汉化 动画 其实所有这些内容,在我的书<Qt Quick核心编程>里都讲到了,感兴趣的朋友可以看我的书. 大概来看一下吧,先看效果. Android 手机运行效

[091127]Dark Blue幽深之蓝【汉化硬盘版】[带全CG存档&amp;攻略+日文原版文件]

lightpic [发售信息] ブランド:LiLiM DARKNESS 価格:\9,240  発売日:2009/11/27  メディア:DVD-ROM JANコード:4514631000712 ジャンル:ADV  サブジャンル:アダルトアニメ化.アドベンチャー  カテゴリ:馆.猟奇.过激.寝取られ  原画:水月悠.たぢまよしかづ.鹤崎贵大  シナリオ:和泉万夜  アーティスト:ひうらまさこ [我现在就来救你] 我好像在抹杀周围的寂静般地粗暴地转动着门把手. --打不开. 用双手握住把手,用尽浑身

ICO如此疯狂为哪般?

编者语: 独角兽一词起源于硅谷,是投资行业,尤其是风险投资业的术语,指的是那些估值超过十亿美元的创业公司.独角兽凤毛麟角,占创业公司总数的0.1%都不到.鑫根资本认为,一个独角兽能达到如此估值,肯定是掌握了某种颠覆时代的技术或模式,使得投资者趋之若鹜,它的诞生势必将带动其相关的产业链发生根本.敬请阅读! 文/卢菁.玟君(鑫根资本) 七月初,美国两家名不见经传的区块链技术公司Tezos和block.one成功完成了总值4亿美元的融资,而且,整个过程同VC.投行.华尔街.或金融证券监管都毫无关联.他

51CTO学院教师节疯狂大让利活动

一颗心,承载着千万个理想.一句话,影响着千万个选择.寒来暑往,春夏秋冬,在这个最美的季节,有一个人,有一个节日属于他.9月10教师节即将来临,51CTO学院全体员工向各位讲师说声:                                                                                       "您辛苦了"~ 51CTO学院感谢两年来广大讲师对平台的鼎力支持,如今学院已成长为"中国最大的IT实战在线教育培训平台&quo

炉石传说 疯狂爆破者空场炸死2个精灵龙的概率

背景介绍 炉石传说中,有一张卡牌叫疯狂爆破者,功能为造成6点伤害,随机分配给其他角色(包括英雄和随从). 这经常能造成一些意想不到的效果,比如对方空场有2个精灵龙,如果能直接炸死,则能造成巨大的优势,所以本文将要分析一下空场炸死对方2个精灵龙的概率. 分析 1. 使用程序进行模拟 #include "stdio.h" #include <cmath> #include <stdlib.h> #include <algorithm> #include

采药 2005年NOIP全国联赛普及组&amp;疯狂的采药

时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:"孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值.我会给你一段时间,在这段时间里,你可以采到一些草药.如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大."

《疯狂程序员》有感

进入大学以来,几乎没有完整的看完过一本书.但是这本书不仅从头到尾的看完了,而且前后读了两遍.这本书就是<疯狂的程序员> 这正是<疯狂的程序员>的诞生之地--CSDN.所以也想借这个平台谈谈对该书的感受顺便分享一些『绝影』的经典语录. 读这本书的时候,总是给人一种身临其境的感觉,似乎自己就是那个「 疯狂的程序员」本人,这正是我能够坚持读下去的原因.也正是读了这本书,才真正的了解自己,了解程序员这个职业.并且决定矢志不渝的坚持做程序员,程序员是伟大的,他们把枯燥无味的代码变成丰富多彩的

1616 疯狂的采药(完全背包问题)

难度:普及- 题目类型:动规 提交次数:1 涉及知识:背包动规 题目背景 此题为NOIP2005普及组第三题的疯狂版. 此题为纪念LiYuxiang而生. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同种类的草药,采每一种都需要一些时间,每一种也有它自身的价值.我会给你一段时间,在这段时间里,你可以采到一些草药.如

5200 fqy的难题----2的疯狂幂

5200 fqy的难题----2的疯狂幂 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 大家都一定知道2的幂吧! 输入一个n,输出2的n次方 输入描述 Input Description 输入一个整数n,表示要求出2的n次方 输出描述 Output Description 只有一个整数,为2的n次方 样例输入 Sample Input 样例输入1: 6 样例输入2: 100 样例输出 Sample O