[luoguP1280] 尼克的任务(DP)
传送门
原本想着 f[i] 表示前 i 个任务的最优答案,但是不好转移
看了题解后,发现是 f[i] 表示前 i 分钟的最优解,看来还是不能死脑筋,思维得活跃,一个思路行不通就换一个思路。
把 f 数组置为 INF,f[0] = 0
如果当前时间不是任务开始的时间,f[i] = max(f[i], f[i 1] + 1)
如果当前时间是任务开始时间,f[i + b[j] 1] = max(f[i + b[j] 1], f[i 1])
——代码
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 #define N 100001 5 #define max(x, y) ((x) > (y) ? (x) : (y)) 6 7 int n, m; 8 int a[N], b[N], f[N]; 9 10 inline int read() 11 18 19 int main() 20 36 } 37 printf("%d\n", f[n]); 38 return 0; 39 }View Code
下一篇:[luoguP3690] 【模板】Link Cut Tree
DP
pla文件怎么看,pla文件用什么打开?
pl1文件怎么看,pl1文件用什么打开?
pl文件怎么看,pl文件用什么打开?
pl0文件怎么看,pl0文件用什么打开?
pkt文件怎么看,pkt文件用什么打开?
pkm文件怎么看,pkm文件用什么打开?
pks文件怎么看,pks文件用什么打开?
pka文件怎么看,pka文件用什么打开?
pkh文件怎么看,pkh文件用什么打开?
pkg文件怎么看,pkg文件用什么打开?