n个旅馆和k个补给站的问题
一条高速公路上有n个旅馆,坐标分别为d1,d2,d3....dn,还有k个补给站,每个补给站可以为任意的旅馆服务,问最小的路程代价是多少。
就是说假设有3个旅馆坐标分别是 1, 4, 5, 和2个补给站,那么路程代价就是1了,一个补给站放在 坐标为1的旅馆那,令一个放在4位置处。
这种问题编程如何实现。
具体问题出自acm.fzu.edu.cn的1005题目fastfood。
[解决办法]
不就是当年IOI的邮局问题么。
先预处理每一段[di...dj]放置1个补给站的最优解,令其为x[i,j]。然后动态规划,如果dp[a,b,c]表示da到db建立c个补给站的最优解的话,dp[a,b,c]=min(dp[a,d,c-1]+x[d+1,b]),最后dp[1,n,k]就是所求的答案。