传送门 :
思路我们使用 二进制状态表示当前经过的点集
状态表示 f [ s t a t e ] [ i ] f[state][i] f[state][i] 经过点集 s t a t e state state并且到达 i i i点的 最短路径长度
状态计算 f [ s t a t e ] [ j ] = m i n ( f [ s t a t e ] [ j ] , f [ s t a t e ] [ k ] + w [ k ] [ j ] ) f[state][j] = min(f[state][j],f[state][k]+w[k][j]) f[state][j]=min(f[state][j],f[state][k]+w[k][j])
如果去掉 j j j的时候,还可以通过 k k k转移到 j j j的话,那么我们进行转移
技巧 : 使用异或操作去掉当前状态中的某一个位置 s t a t e ⊕ ( 1 < < j ) state \oplus(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脚手架写一个简单的页面?