题意:未来的人要旅行,他们旅行需要通过虫洞。飞船在不同的状态下通过虫洞的消耗不同,飞船在不同的状态之间转移也有消耗。
给出飞船状态转移的消耗对应的矩阵和飞船在不同状态下通过虫洞的消耗对应的矩阵。让你从0状态出发,按照给定的经过虫洞的顺序,完成旅行并回到0状态。(在旅行途中不能回到0状态),同时输出字典序最小的,在每个虫洞下对应的状态。
思路:非常暴力的DP,把所有的状态转移的情况都算一边。注意,由于要求字典序最小的状态序列,需要从最后的状态向前递推,得到最小花费,同时记录路径。再从前向后得到所要的状态序列。
DP方程:dp[k][i]表示在完成k+1,k+2...m个虫洞旅行的最小花费 ,则dp[k][i] = min(dp[k+1][j]+s[i][j]+hop[i][a[k]]) 1<= j <H
注意:由于开始和结束必定回到0状态