HNACM(六)--第八题 River Crossing

来源:互联网 发布:tplink 访客网络 编辑:程序博客网 时间:2024/06/01 16:37

还是DP题,我很无语,题目都看了好长时间!

#include<stdio.h>#define INF 10000000#define N 1000+10int time[N],t[N],m;int dp(int n){int i,ans = INF;if(n == 0)return 0;if(time[n] < INF)return time[n];for(i = n; i >= 1; i--){if(ans > dp(n-i) + t[i] + m)ans = dp(n-i) + t[i] + m;}return time[n] = ans;}int main(){freopen("T8.in","r",stdin);int k,n,i;scanf("%d",&k);while(k--){scanf("%d%d",&n,&m);for(i = 1; i <= n; i++){time[i] = INF;scanf("%d",&t[i]);if(i == 1)t[i] += m;t[i] += t[i-1];}printf("%d\n",dp(n) - m);}return 0;}


原创粉丝点击