P1280 尼克的任务 dp
思路:
倒着DP f[i]表示i时刻的空闲时间最大值
在当前时间没有任务开始 f[i]=f[i+1]+1; 上一分钟最大空闲时间+1
在当前时间有任务开始 f[i]=max(f[i],f[i+a[sum]) // i+a[sum]表示做完任务后的最大空闲时间 因为做任务的时候是忙着的 所以这样转移
因为 最后做的任务 不会影响前面 所以dp满足无后效性
#include<bits/stdc++.h>
using namespace std;
const int maxn=10005;
int dp[maxn];
int sum[maxn];
struct Node{
int p,t;
}node[maxn];
bool cmp(Node a,Node b){
return a.p>b.p;
}
int main(){
int n,k;
cin>>n>>k;
for(int i=0;i<k;i++){
scanf("%d%d",&node[i].p,&node[i].t);
sum[node[i].p]++;
}
int num=0;
sort(node,node+k,cmp);
for(int i=n;i>=1;i--){
if(!sum[i])dp[i]=dp[i+1]+1;
else {
for(int j=1;j<=sum[i];j++){
if(dp[node[num].t+i]>=dp[i])dp[i]=dp[node[num].t+i];
num++;
}
}
}
cout<<dp[1]<<endl; return 0;
}
P1280 尼克的任务 dp的更多相关文章
- 洛谷P1280 尼克的任务[DP]
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ...
- 洛谷P1280 尼克的任务 [DP补完计划]
题目传送门 题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从 ...
- P1280 尼克的任务 /// DP(选择性地)
题目大意: https://www.luogu.org/problemnew/show/P1280 题解 手推一遍思路更清晰 #include <bits/stdc++.h> using ...
- P1280 尼克的任务 线性DP
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ...
- P1280 尼克的任务[区间覆盖dp]
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ...
- 洛谷P1280 尼克的任务【线性dp】
题目:https://www.luogu.org/problemnew/show/P1280 题意: 给定k个任务的开始时间和持续时间要求在n时间内完成.问如何安排工作使得休息时间最多. 思路: 用d ...
- P1280 尼克的任务(DP)
题目描述 尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成. 尼克的一个工作日为N分钟,从第一分钟开始 ...
- 【Luogu】P1280尼克的任务(DP)
做顺序DP做惯了,死活没想到这是个倒序DP. f[i]表示时刻i的最大空闲时.有以下两种可能. 1.时刻i没有任务.此时f[i]=f[i+1]+1; 2.时刻i有许多任务.此时f[i]=max(f[i ...
- 洛谷 P1280 尼克的任务 (线性DP)
题意概括 线性资源分配的问题,因为空闲的时间大小看后面的时间(反正感觉这个就是个套路)所以从后往前DP. 转移方程 如果当前时刻没有工作 f[i]=f[i+1]+1 如果当前时刻有工作 f[i]=ma ...
随机推荐
- iOS开发简记(7):网络请求模块
主流的APP都少不了跟服务器交互,网络请求是少不了的事情. 开源的网络请求库,有很多,比如:AFNetworking.YTKNetwork.PPNetworkHelper.ASIHttpRequest ...
- 从 0 到 1 实现 React 系列 —— 2.组件和 state|props
看源码一个痛处是会陷进理不顺主干的困局中,本系列文章在实现一个 (x)react 的同时理顺 React 框架的主干内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/ref/. ...
- Python之加环境变量
1.python找文件是先去当前文件所在的文件夹下找,也就是bin目录下找 2.如果bin目录里找不到,再去python的环境变量里找 如果有pycharm,那么直接点右键-选择Mark Direct ...
- MySQL设计SQL语句优化规范
原文:http://bbs.landingbj.com/t-0-240751-1.html 1. 使用mysql explain 对sql执行效率进行检测 ,explain显示了mysql如何使用索引 ...
- KafKa记录
- mysql中的几种日志了解
前言 MySQL中有以下日志文件,分别是: 1:重做日志(redo log) 2:回滚日志(undo log) 3:二进制日志(binlog) 4:错误日志(errorlog) 5:慢查询日志(slo ...
- [转帖]震惊,用了这么多年的 CPU 利用率,其实是错的
震惊,用了这么多年的 CPU 利用率,其实是错的 2018年12月22日 08:43:09 Linuxer_ 阅读数:50 https://blog.csdn.net/juS3Ve/article/d ...
- laravel 项目表单中有csrf_token,但一直报错419错误 解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persi
laravel 项目表单中有csrf_token,但一直报错419错误,因为项目中使用到Redis缓存,在强制关闭Redis后出现的问题,查询laravel.log文件查找相关问题 安装redis后在 ...
- vs2012密钥
Microsoft Visual Studio Ultimate 2012 旗舰版 有效注册密钥:YKCW6-BPFPF-BT8C9-7DCTH-QXGWC:KCW6-BPFPF-BT8C9-7DCT ...
- python之路--MRO和C3算法
一 . MRO(method resolution order) 多继承的一种方法,一种查找的顺序 在python3 里面是一种新类式MRO 需要用都的是C3算法 class A: pass clas ...