wa了#2#4#6#9#10求助神犇帮忙看看!!!
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std ;
const int mod = 100000000 ;
int m ,n ;
int map[15][15] ;
long long f[15][1<<12+10] ;//i行 j状态
inline void add(long long &x , long long y){
(x += y) >= mod ? x - mod : x ;
}
int main(){
memset(map , -1 , sizeof map) ;
scanf("%d%d" , &m , &n) ;
for(int i = 1;i <= m;++i) for(int j = 1;j <= n;++j) scanf("%d" , &map[i][j]) ;
f[0][0] = 1 ;
for(int i = 0;i < m;++i){
for(int z1 = 0;z1 < (1 << n);++z1){
for(int z2 = 0;z2 < (1 << n);++z2){
if(z1 & z2) continue ;
if((z2 & (z2 << 1)) || (z2 & (z2 >> 1))) continue ;
int z = z2 ,flag = 0 ,cnt = 0 ;
while(z){
cnt++ ;
if(z & 1){
if(map[i + 1][cnt] == 0){
flag = 1 ;
break ;
}
}
z >>= 1 ;
}
if(flag) continue ;
add(f[i + 1][z2] , f[i][z1]) ;
}
}
}
long long ans = 0 ;
for(int i = 0;i < (1 << m);++i) add(ans , f[m][i]) ;
printf("%lld" , ans) ;
return 0 ;
}