状压DP
state =| (1<<i) # 从状态state加入i
state & ~(1<<i) # 从状态state去掉i
state & (1<<i) # 判断state是否包括i,或者写成(state>>i)&1
s &= s-1 # 最低位的 1 置成 0
p = s & -s # 获得最低位的1的位置(1&-1=1,2&-2=2)
s = state
while s:
yield s # 遍历state的非空子集s
s = (s-1) & state热身:子集(power set)
TSP
路径问题
不同路径:有顺序的放球问题
不同路径 II:二维路径数(方案数)DP
不同路径 III:状态压缩DP
分割子集
棋盘
N国王 [SCOI2005]互不侵犯
Last updated