样例输出0 重新做了好几遍了 救救孩子吧
#include<cstdio>
const int mod=100000000;
const int M=13,K=1<<13;
int m,n;
int f[M][K],a[M];
bool ok[K];
int main(){
scanf("%d%d",&m,&n);
for(int i=1;i<=m;i++)
for(int j=1,x;j<=n;j++){
scanf("%d",&x);
(a[i]<<=1)+=x;
}
for(int i=0;i<(1<<n);i++)
if(!(i&(i<<1))&&!(i&(i>>1))) ok[i]=true;
f[0][0]=1;
for(int i=1;i<=m;i++)
for(int j=0;j<(1<<n);j++)
if((j&a[i]==j)&&ok[j])
for(int k=0;k<(1<<n);k++)
if(k&j==0) (f[i][j]+=f[i-1][k])%=mod;
int ans=0;
for(int i=0;i<(1<<n);i++) (ans+=f[m][i])%=mod;
printf("%d",ans);
return 0;
}