状压dp
1.位运算技巧
先来学习一波位运算
比如说9
二进制 : 1001
。。。: 3210
设n=9,
n |= 1<<k 表示把n的第k位修改为1
如:n |= 1<<1 1011;
n &= ~(1<<k) 表示把n的第k位修改为0
如: n &= ~(1<<0) 1000;
取第k位: n>>k & 1
构造0~n-1位二进制数全部为1:(1<<n)-1
构造形如10,100,100000即[0, k-1]全部为0,[k,k]为1,这样的二进制数:1<<(k-1)