随笔分类 - 动态规划 / 状态压缩dp
摘要:#include<iostream> #define int long long using namespace std; int ans=0; int num[1<<11]; int f[110][1<<10][1<<10]; int s[1<<12]; int g[1<<12]; signed
阅读全文
摘要:位运算符好麻烦,没打括号被卡了半天 #include<iostream> #define int long long using namespace std; int f[12][100][1<<11]; int s[1<<11]; int num[1<<11]; signed main(){ in
阅读全文
摘要:由于我的cnt是从一开始的,我还debug了一会 由于数据是一行一行的输入,我们不能像蒙德里安的梦想那样,按列判断 if((s[a]&g[i])s[a]&&(!(s[a]&s[b])))f[i][a]=(f[i][a]+f[i-1][b])%p; 如果(s[a]&g[i])s[a]说明s[a]在g[
阅读全文
摘要:1.首先就是每列状态的表示,如果该列有横着的方块就用1,表示否则就用零,一共n行最多有n个一就是2^n-1最少0个一就是0,所以0<=i<n;j表示i位移的个数,i最多n位所以最多位移n-1位来检验i每一位,如果是1就检验cnt来检验是否有连续奇数个0,最后还要再检验一次来检验高位零 #includ
阅读全文