luogu P1280 尼克的任务 序列DP
Posted iat14
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu P1280 尼克的任务 序列DP相关的知识,希望对你有一定的参考价值。
我们发现,我们从前往后DP有苦难,因为现在的选择存在后效性。
如果我们从后向前DP,f[i]表示从i时刻到下班的最小工作时间,从后向前转移,则不存在后效性问题。
1 #include <cstdio> 2 #include <vector> 3 using namespace std; 4 vector <int> vec[10010]; 5 int f[10010]; 6 int n,k; 7 int main() 8 { 9 scanf("%d%d",&n,&k); 10 int tx,ty; 11 for (int i = 1;i <= k;i++) 12 { 13 scanf("%d%d",&tx,&ty); 14 vec[tx].push_back(ty); 15 } 16 for (int i = n;i >= 1;i--) 17 { 18 if (!vec[i].size()) f[i] = f[i + 1] + 1; 19 for (int o = 0;o < vec[i].size();o++) 20 f[i] = max(f[i],f[i + vec[i][o]]); 21 } 22 printf("%d ",f[1]); 23 return 0; 24 }
以上是关于luogu P1280 尼克的任务 序列DP的主要内容,如果未能解决你的问题,请参考以下文章