https://www.acwing.com/problem/content/description/93/
思路这道题看似像一个最短路,但是并不是,因为我们要求对于每一个点都经过,但是最短路不能保证,所以我们换一个思路用DP,我们定义 f [ i ] [ j ] f[i][j] f[i][j]表示从0走到j,走过的所有点是i状态的最短路径,其中的i我们将其看为二进制表示,对于每一位我们用1表示这一个点走过,用0表示这一个点没走过,那么我们要经过第一个点是0,所以我们初始化 f [ 1 ] [ 0 ] = 0 f[1][0] = 0 f[1][0]=0表示走到0这个点花费的路径价值为0,然后假设倒数第二个点为 k k k那么我们要求的其实就是 s − > k − > j s->k->j s−>k−>j的一个路径最小值,对于 k − > j k->j k−>j的路径我们已经固定了即 w [ k ] [ j ] w[k][j] w[k][j],那么从 s − > k s->k s−>k的一个距离最短值就需要从前面的状态转移过来即: f [ i ] [ j ] = m i n ( f [ i ] [ j ] , f [ i − ( 1 < < j ) ] [ k ] + w [ k ] [ j ] ) f[i][j]=min(f[i][j],f[i-(1
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?