传送门

题目描述

尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。

尼克的一个工作日为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

输出样例#1: 复制

4(不看题解还真不容易想出来。逆推)AC代码:
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int n,k,f[10020],dp[10020],num=1;
struct node
{int a,b;
} q[10010];
bool cmp(node a,node b)
{return a.a>b.a;
}
int main()
{cin>>n>>k;    for(int i=1;i<=k;i++){cin>>q[i].a>>q[i].b;f[q[i].a]++;}sort(q+1,q+k+1,cmp);for(int i=n;i>0;--i){if(!f[i])dp[i]=dp[i+1]+1;else for(int j=1;j<=f[i];j++) {if(dp[i+q[num].b]>dp[i])dp[i]=dp[i+q[num].b];num++;}}cout<<dp[1];
}

转载于:https://www.cnblogs.com/JCRL/p/10142709.html

P1280 尼克的任务相关推荐

  1. luogu P1280 尼克的任务 序列DP

    我们发现,我们从前往后DP有苦难,因为现在的选择存在后效性. 如果我们从后向前DP,f[i]表示从i时刻到下班的最小工作时间,从后向前转移,则不存在后效性问题. 1 #include <cstd ...

  2. LuoGU 线性DP

    P1091 合唱队形 看一下题解吧,你好i需要正反搜一下lcs ,然后合并 #include<bits/stdc++.h> using namespace std; #define LOA ...

  3. mysql无损复制_MySQL无损复制(转)

    MySQL5.7新特性:lossless replication 无损复制 MySQL的三种复制方式 asynchronous 异步复制 fully synchronous 全同步复制 Semisyn ...

  4. 【动态规划】线性动态规划

    吐槽:动态规划这个东西,只要推不出状态转移方程,一切都白搭 基础知识 一. 动态规划 动态规划中最重要的三个概念:最优子结构,重复子问题,无后效性. 最优子结构:如果问题的最优解所包含的子问题的解也是 ...

  5. OI每周刷题记录——lrllrl

    看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...

  6. 第13期:动态规划-dp题集

    1 P7972 [KSN2021] Self Permutation //[动态规划1]动态规划的引入 2 P1216 [USACO1.5][IOI1994]数字三角形 Number Triangle ...

  7. 洛谷P1280 caioj 1085 动态规划入门(非常规DP9:尼克的任务)

    这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做-- 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少. 很多网上题解都反着做,那么 ...

  8. 尼克的任务(洛谷-P1280)

    题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ...

  9. df满足条件的值修改_文科生学 Python 系列 16:泰坦尼克数据 2(缺失值处理)

    第八课:案例分析 - 泰坦尼克数据 本节课将重点分析泰坦尼克号沉船事故,我们将探索是什么因素决定了最后是否生还. 我们将将前面课程所学过的知识点融会贯通,举一反三 新增知识点: 缺失值处理:panda ...

最新文章

  1. Lora模块项目01:简述物联网的各大无线通信技术
  2. 阿里全球数学竞赛第二届
  3. 计算机网络教室课程安排表,关于计算机教学计划汇总六篇
  4. open ssl里面的自定义get***函数失效
  5. [css] 使用rem的优缺点是什么?和使用百分比有什么区别?
  6. git21天打卡-day5 day6 day7
  7. 三相滤波器怎么接线_三相电源滤波器作用 详解三相电源滤波器
  8. 蓝桥杯C/C++B组历届真题刷题【合集】
  9. [C程序设计]请编程序将“China”译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。
  10. 官网下载Eclipse详细步骤
  11. 一个3D车道线检测方法PersFormer及其开源OpenLane数据集
  12. 【持久层框架】- SpringData - JPA
  13. 3dmax模型复制卡,为什么?
  14. 黑大汇文楼计算机研究生,谈一谈我在黑龙江大学的复试经历
  15. 我爱大自然教案计算机,我爱大自然大班教案
  16. 金山注入浏览器默认开启上网导航 www.uu114.cn
  17. 利用HTML所学内容完成小案例
  18. vscode通过插件一键运行 c++单元测试
  19. unity跳转场景变暗的解决办法
  20. 关于NetSuite中系统时间问题

热门文章

  1. 蓝桥杯 ALGO-54 算法训练 简单加法(基本型)
  2. 【软件项目管理】软件项目的主要成本是人的劳动的消耗
  3. PHP可以读取什么配置文件,PHP读取配置文件类实例
  4. oracle数据库listener开启和关闭trace文件的方法
  5. Oracle中Sequence序列的使用
  6. 修改Android Studio默认的gradle配置文件
  7. 12月第2周业务风控关注 | 公安部:严打自媒体“网络水军”违法犯罪,关闭大V账号1100余个...
  8. Jenkins服务器磁盘空间爆满问题解决
  9. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 11 章 索引_11.11. 只用索引的扫描
  10. shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case判断