给定N个点,任意两个点之间都联通,找出两条路径(涵盖所有点),使他们的和最小

首先把点从左往右编号0-n-1
那么原题相当于找两条从左往右的不想交的路线
dp[i]表示两条路走到了i和i-1最少的花费是多少
答案是dp[n-1]+cost[n-2][n-1]
dp[1]=cost[0][1]
dp[i]=min(dp[i-1]+cost[i-2][i], dp[i-2]+cost[i-2][i-1]+cost[i-3][i], dp[i-2]+cost[i-3][i-1]+cost[i-2][i])

posted on 2012-10-14 21:55  知识天地  阅读(334)  评论(0编辑  收藏  举报