Tyvj1034
来源:互联网 发布:wps vb编辑器下载 编辑:程序博客网 时间:2024/05/22 09:39
题目链接
分析:
这道题很久以前(一年前???)
就做过了,但是直到现在我也并不觉得简单
如果我们选择完成一项工作
那么最长休息时间就要看完成之后的状态
f[i]=f[i+job[j].t]
dp的原则是当前状态一定要由稳定状态转移来
那么明显要从后向前循环
那如果当前没有任务怎么办呢
f[i]=f[i+1]+1;
状态分析完毕~
这里写代码片#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=10010;struct node{ int s,t;};node job[N];int n,m,f[N];int cmp(const node &a,const node &b){ if (a.s!=b.s) return a.s<b.s; else return a.t<b.t;}void doit(){ int i,j=m; for (i=n;i>=1;i--) { if (job[j].s!=i) f[i]=max(f[i],f[i+1]+1); while (job[j].s==i) { f[i]=max(f[i],f[i+job[j].t]); j--; } } printf("%d",f[1]);}int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) scanf("%d%d",&job[i].s,&job[i].t); sort(job+1,job+1+m,cmp); doit(); return 0;}
阅读全文
0 0
- Tyvj1034
- 【tyvj1034】尼克的任务
- 洛谷P1280/tyvj1034 尼克的任务 DP
- tyvj1034 尼克的任务 (动态规划+链表)
- tyvj1034(线性dp经典题,还是不清楚,怎么想出这种做法的?解题的方向是什么?
- Arduino学习日记四
- VS配置文件,风格!
- 如何更改linux下的Apache端口号(亲测有效)
- 关于RPC的介绍
- hdu6059 Kanade's trio(字典树)
- Tyvj1034
- iptables--命令行解析
- 百度网盘视频解析,获取真实源地址
- 十四、bootstrap-table 展示数据
- WOJ1049-Words
- @SuppressWarnings注解用法详解
- Zero Cost—40G Migration with QSFP BiDi Transceiver
- 解决0x00000FD:Stack overflow(参数:0x00000000,0x002F2000)栈溢出问题
- python 文章集合