好吧,今天开始正式学DP,随便点了一个简单题,练了下手。。。
这道题转移方程不难,O(n^2)的复杂度,可以AC。
dp[i][j]表示考虑跑了i趟前j个车走完花的时间
先进行对时间排序(不知道为什么,第一次交没排序也AC了。。。。难道是原来就是有序的?)
dp[1][i]={
i<=n时:a[i]+t
i>n时:oo
}
至于趟数大于1的,有如下转移方程:
dp[k][i]=min{max(dp[i-1][j][j-1]+t,a[i])+t} 其中max(i-n+1,1)<=j<i
然后找dp[i][m]中最小的就可以了
我的代码: