tyvj1034 尼克的任务

描述

尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。
尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束。当尼克到达单位后他就开始干活。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去写成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成。如果某任务于第P分钟开始,持续时间为T分钟,则该任务将在第P+T-1分钟结束。
写一个程序计算尼克应该如何选取任务,才能获得最大的空暇时间。

输入格式

输入数据第一行包含两个用空格隔开的整数N和K,1≤N≤10000,1≤K≤10000,N表示尼克的工作时间,单位为分,K表示任务总数。
接下来共有K行,每一行有两个用空格隔开的整数P和T,表示该任务从第P分钟开始,持续时间为T分钟,其中1≤P≤N,1≤P+T-1≤N。

输出格式

输出文件仅一行包含一个整数表示尼克可能获得的最大空暇时间。

测试样例1

输入

15 6 
1 2 
1 6 
4 11 
8 5 
8 1 
11 5

输出

4

备注

某ACM经典题

/*
如果设计状态为i分钟最多休息多长时间,则不满足最优子结构(我可以虽然休息少但是往后持续的时间优,从而能使后面的状态获得一个更优解)
但如果设计状态为从i时间开始工作能休息多长时间就行了,这是因为前面的对后面的安排有影响,而后面的安排对前面的安排没有影响
对于dp[i]如果有任务此刻开始就做,没有就是一秒后再工作,这一秒休息,用链表解决当前任务的问题可以提高效率
*/
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn = 20050;
int read(){
    char ch=getchar();
    int x=0,f=1;
    while(!(ch>=‘0‘&&ch<=‘9‘)){if(ch==‘-‘)f=-1;ch=getchar();};
    while(ch>=‘0‘&&ch<=‘9‘){x=x*10+(ch-‘0‘);ch=getchar();};
    return x*f;
}
struct dat{
    int e;
    int nxt;
};
int n,k;
int cnt,head[maxn];
dat a[maxn];
int dp[maxn];
void ins(int p,int t){
    cnt++;
    a[cnt].e = p + t;
    a[cnt].nxt = head[p];
    head[p] = cnt;
}
int main(){
    n = read();
    k = read();
    int u,v;
    for(int i = 1;i <= k;i++){
        u = read();
        v = read();
        ins(u,v);
    }
    bool flag;
    for(int i = n;i >= 1;i--){
        flag = false;
        for(int j = head[i];j;j = a[j].nxt){
            dp[i] = max(dp[i],dp[a[j].e]);
            flag = true;
        }
        if(!flag) dp[i] = max(dp[i],dp[i+1]+1);
    }
    cout<<dp[1];
    return 0;
}
时间: 2024-10-18 07:01:43

tyvj1034 尼克的任务的相关文章

P1280 尼克的任务

题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持续时间为T分钟,则该任务将

洛谷 P1280 尼克的任务

题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持续时间为T分钟,则该任务将

1280 尼克的任务

难度:普及+/提高 题目类型:动规 提交次数:1 涉及知识:线性动规 题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由

艾森尼克:提供高品质大通量RO膜,树立滤芯行业新标杆!

"艾森尼克"是韩国专业从事反渗透膜元件及一体滤芯研发.生产.销售的高新技术企业,在韩国拥有近50000㎡的生产厂房,RO膜年产量超过500万支.目前,在世界范围内超过600家净水器生产企业,选择了"艾森尼克"RO膜作为产品核心组件. "艾森尼克"拥有完善的生产管理体系.质量控制体系,滤芯的不良率低于十万分之一,获得了世界净水器行业的一致认可,产品畅销中国.日本.美国.加拿大及欧洲等地区. 自2007年始,"艾森尼克"连续十年成

TYVJ P1034 尼克的任务 Label:倒推dp

背景 题库靠大家,人人都爱它. 描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成.尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去写成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持

耐思尼克教你辨别垃圾产品和服务商

谈起互联网大家都不陌生,但是知道互联网基础设施的不多,就像房屋需要砖瓦木材一样,用户在使用互联网的时候,同样需要服务器.域名和建站产品.而这些产品对于大多数人来讲都是陌生的.随着互联网入门门槛越来越低,越来越多的人选择互联网创业,这也意味着,越来越多的购买域名.主机或服务器的人会有上当受骗的可能.耐思尼克(http://www.iisp.com)作为国内十强IDC商,有责任保护用户的财产不受侵害.下面就由耐思尼克来戳穿假IDC上的真面貌,告诉您什么样的产品是垃圾的. 垃圾IDC提供商在辨别垃圾I

尼克的任务(洛谷 1280)

题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完戍,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如果某任务于第P分钟开始,持续时间为T分钟,则该任务将

国内外.top域名注册量TOP15:耐思尼克跌至榜尾

IDC评述网(idcps.com)10月30日报道:据ntldstats.com最新数据显示,截止至2015年10月29日17时,.top域名总量达到577,921个,发展形势良好.在.top域名总量十五强排行榜上,西部数码以264,476个.top域名稳居首位,环比上期10月16日净增4,745个,增速放缓.中国数据.易名中国分获亚.季军,.top域名总量依次是66,868个.58,720个.另外,排名较上期有所改变,耐思尼克下降1位跌至榜尾.接下来,请与IDC评述网一起关注.top域名注册量

CODEVS 1158 尼克的任务

[题目描述 Description] 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼 克的一个工作日为N分钟,从第一分钟开始到第N分钟结束.当尼克到达单位后他就开始干活.如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来 做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去写成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成.如 果某任务于第P分钟