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的主要内容,如果未能解决你的问题,请参考以下文章

P1280 尼克的任务(DP)

线性状态动态规划 P1280 尼克的任务资源分配型动态规划

洛谷 P1280 尼克的任务 ( 线性DP )

洛谷 [P1280] 尼克的任务

P1280 尼克的任务 dp

P1280 尼克的任务