传送门

说要统计方案,感觉就是个 Σ

而矩阵中只有 01 ,可以用二进制表示

这样,预处理出每一个每一行所有可能的状态 s

然后初始化第一行所有状态的方案数为 1

f[i][j] = Σf[i - 1][k] (k 和 j 不冲突,j 为第 i 行所有方案,k 为第 i - 1 行所有方案)

——代码

 #include <cstdio>
#include <iostream>
#define mod 100000000 int n, m, ans;
int f[][ << ], pos[][ << ], s[][ << ]; inline int read()
{
int x = , f = ;
char ch = getchar();
for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -;
for(; isdigit(ch); ch = getchar()) x = (x << ) + (x << ) + ch - '';
return x * f;
} inline void dfs(int k, int i, int num)
{
if(i > pos[k][])
{
s[k][++s[k][]] = num;
return;
}
dfs(k, i + , num);
if((pos[k][i] ^ (pos[k][i - ] + )) || (i == ))
dfs(k, i + , num + ( << pos[k][i] - ));
else if((i ^ ) && (pos[k][i] == pos[k][i - ] + ))
if(((num >> pos[k][i - ] - ) & ) ^ )
dfs(k, i + , num + ( << pos[k][i] - ));
} int main()
{
int i, j, k, x;
n = read();
m = read();
for(i = ; i <= n; i++)
for(j = ; j <= m; j++)
{
x = read();
if(x) pos[i][++pos[i][]] = j;
}
for(i = ; i <= n; i++) dfs(i, , );
for(i = ; i <= s[][]; i++) f[][i] = ;
for(i = ; i <= n; i++)
for(j = ; j <= s[i][]; j++)
for(k = ; k <= s[i - ][]; k++)
if(!(s[i][j] & s[i - ][k]))
{
f[i][j] += f[i - ][k];
if(f[i][j] >= mod) f[i][j] -= mod;
}
for(i = ; i <= s[n][]; i++)
{
ans += f[n][i];
if(ans >= mod) ans -= mod;
}
printf("%d\n", ans);
return ;
}

最新文章

  1. MPLS与LDP从入门到了解
  2. bootstrap学习笔记--bootstrap排版类的使用
  3. sql server 小记——分区表
  4. 【BZOJ】【2038】小Z的袜子
  5. PHP抓取豆瓣读书爬虫代码
  6. 【java开发系列】— JDOM创建、改动、删除、读取XML文件
  7. noip2006T1 能量项链
  8. C#关于静态与非静态的区别
  9. .NET study collection links
  10. leetcode第22题--Merge k Sorted Lists
  11. iOS 开发者旅途中的指南针 - LLDB 调试技术
  12. Uva 548 二叉树的递归遍历lrj 白书p155
  13. zabbix系列之十——添加短信告警
  14. python中的unique()
  15. 背水一战 Windows 10 (108) - 通知(Tile): application tile 基础, secondary tile 基础
  16. python免费发送短信
  17. thinkphp的系统变量
  18. PCIE协议解析 synopsys IP loopback 读书笔记(1)
  19. Mac OSX 安装qemu
  20. RESTful Java client with Apache HttpClient / URL /Jersey client

热门文章

  1. js实现页面的全屏与退出
  2. JavaScript--DOM方法
  3. [SDOI2009]学校食堂
  4. DFS(连通块) HDU 1241 Oil Deposits
  5. 转 PHP - AJAX 与 PHP
  6. pyinstaller打包报错:AttributeError: &#39;str&#39; object has no attribute &#39;items&#39;
  7. C#基础 结构体 枚举类型
  8. C:\Windows\System32\drivers\etc\hosts文件显示
  9. Dom编程的入门
  10. Python批量下载电视剧电影--自己动手丰衣足食