9.7途虎养车第三题求问一下解法
刷题太少了不知道该怎么做,回溯最后差一点
全部评论
上面写漏了些东西,for循环里面是这样sum=min( sum, dfs(i,t,k)+cost[i][t] );思路就是:当涂到第i辆车时,有j种颜色,那么最小花费就是dfs(i,j,k);
典型的dp了,用记忆化搜索很快写出来
dp[][]=new [][];
int dfs( int i,int j,int k){
if( dp[i][j]!=-1) return dp[i][j];
int sum=0;
for( t -->k ){
if( t!=j) sum+=dfs(i+1,t,k)
}
dp[i][j]=sum;
return sum;
}
二维dp?每列三个元素维护以三种结尾的最小值
经典的动态规划
看着像状态dp
相关推荐
06-24 00:02
北京电子科技职业学院 活动运营 点赞 评论 收藏
分享
07-16 10:58
西安科技大学 golang 点赞 评论 收藏
分享