洛谷 P2904 [USACO08MAR]跨河River Crossing

Posted 子谦。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷 P2904 [USACO08MAR]跨河River Crossing相关的知识,希望对你有一定的参考价值。

题目

动规方程 f[i]=min(f[i],f[i?j]+sum)

我们默认为新加一头牛,自占一条船。想象一下,它不断招呼前面的牛,邀请它们坐自己这条船,当且仅当所需总时间更短时,前一头奶牛会接受邀请,最多邀请前面的所有奶牛一起坐这条船。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 using namespace std;
 5 const int maxn=2505;
 6 int n,m,mt[maxn],f[maxn];
 7 int main(){
 8     scanf("%d%d",&n,&m);
 9     for(int i=1;i<=n;i++)scanf("%d",&mt[i]);
10     memset(f,101,sizeof(f));
11     f[0]=0;
12     for(int i=1;i<=n;i++){
13         int sum=2*m;
14         for(int j=1;j<=i;j++){
15             sum+=mt[j];
16             f[i]=min(f[i],f[i-j]+sum);
17         }
18     }
19     printf("%d",f[n]-m);
20     return 0;
21 }

 

以上是关于洛谷 P2904 [USACO08MAR]跨河River Crossing的主要内容,如果未能解决你的问题,请参考以下文章

洛谷P2904 [USACO08MAR]跨河River Crossing 动态规划

洛谷—— P2904 [USACO08MAR]跨河River Crossing

洛谷 P2904 [USACO08MAR]跨河River Crossing

P2904 [USACO08MAR]跨河River Crossing

bzoj1617 / P2904 [USACO08MAR]跨河River Crossing

[USACO08MAR]跨河River Crossing dp