状态压缩类动态规划笔记

 

状态压缩类动态规划:

一、问题简介:

1.状压dp:以集合信息为状态(下面会解释)

2.一般dp只需要提取出两三个信息对状态进行转移,但是如果多个信息对状态有影响,我们不能开多维数组(可能会爆空间),这时候考虑状压dp

3.状压指对多个状态进行压缩

二、问题引入:(旅行商问题 TSP)

一个n个点的带权完全图,求权和最小的经过每个点恰好一次的封闭回路。

我们只要知道哪些点已经被遍历过,遍历的具体顺序对于最后结果无影响,设当前位置为i,遍历过的点的集合为s,转移方程为:

f[i][s]=min(f[j][s-i]+dist(i,j))

状压dp:以一个集合内的元素信息为状态且状态总数为指数级别的dp

特点:

1.数据规模某一维或某几维非常小

2.最优性原理和无后效性

三、状压dp:
  (1)前置知识:

    1.判断第i位是否为0 :  (s&(1<<i))==0

    2.将第i位设置成1: (s|(1<<i))

    3.将第i位设置成0: (s&~(1<<i))

  (2)典型例题:

    略~~

 

posted @ 2021-02-21 15:56  yxr~  阅读(48)  评论(0编辑  收藏  举报