看看是不是初始化时 if(!((i&a[1])||(i&(i<<1)))) dp[i][1]=1; 写成了 if(!((i&a[1])||(i&(1<<i)))) dp[i][1]=1;
if(!((i&a[1])||(i&(i<<1)))) dp[i][1]=1;
if(!((i&a[1])||(i&(1<<i)))) dp[i][1]=1;