题目传送门

 /*
状态压缩DP:先处理硬性条件即不能种植的,然后处理左右不相邻的,
接着就是相邻两行查询所有可行的种数并累加 写错一个地方差错N久:)
详细解释:http://www.tuicool.com/articles/JVzMVj
*/
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <string>
#include <map>
#include <set>
using namespace std; const int MAXN = ;
const int INF = 0x3f3f3f3f;
const int MOD = 1e8;
int dp[MAXN][ << MAXN];
int st[ << MAXN];
int rem[ << MAXN]; int solve(int m)
{
int cnt = ;
int tot = << m;
for (int i=; i<tot; ++i)
{
if ((i & (i << )) == )
{
st[++cnt] = i;
}
} return cnt;
} void work(int n, int m, int cnt)
{
memset (dp, , sizeof (dp));
for (int i=; i<=cnt; ++i)
{
if ((st[i] & rem[]) == )
{
dp[][i] = ;
}
} for (int i=; i<=n; ++i)
{
for (int k=; k<=cnt; ++k)
{
if ((st[k] & rem[i]) == )
{
for (int j=; j<=cnt; ++j)
{
if (((st[j] & rem[i-]) == ) && ((st[j] & st[k]) == ))
dp[i][k] = (dp[i][k] + dp[i-][j]) % MOD;
}
}
}
} int ans = ;
for (int i=; i<=cnt; ++i)
{
ans = (ans + dp[n][i]) % MOD;
} printf ("%d\n", ans);
} int main(void) //POJ 3254 Corn Fields
{
#ifndef ONLINE_JUDGE
freopen ("F.in", "r", stdin);
#endif int n, m;
while (~scanf ("%d%d", &n, &m))
{
int cnt = solve (m); memset (rem, , sizeof (rem));
for (int i=; i<=n; ++i)
{
int x;
for (int j=; j<=m; ++j) //看错n和m
{
scanf ("%d", &x);
if (x == )
{
rem[i] = rem[i] | ( << (m-j));
}
}
} work (n, m, cnt);
} return ;
}

最新文章

  1. WPF -Enum的三种绑定方法
  2. STL : map函数的运用 --- hdu 4941 : Magical Forest
  3. HDOJ 3709 Balanced Number
  4. 关于javascript tween的学后小感想
  5. ef 更新导航属性
  6. MySQL学习笔记01-MYSQL安装
  7. JavaScript DOM 编程艺术(第2版)读书笔记(1)
  8. 文件API及其特点
  9. Abstract_Factory
  10. 一个简单的时间轴demo
  11. php SeasLog使用以及liunx环境下安装
  12. service层报错找不到方法Invalid bound statement (not found)
  13. 数据规范化——sklearn.preprocessing
  14. JS中 typeof,instanceof类型检测方式
  15. Jvm threaddump,heapdump的分析及问题定位
  16. redhat yum
  17. Boost filessystem...
  18. js设计模式总结3
  19. CAC的Debian-8-64bit安装BBR正确方式是?
  20. yii2之创建管理员

热门文章

  1. [Effective JavaScript 笔记]第5章:数组和字典--个人总结
  2. [Effective JavaScript 笔记]第61条:不要阻塞I/O事件队列
  3. Unity3d LineRenderer画线
  4. 使用 nginx + thin 的配置启动 rails server
  5. 电够动力足&mdash;&mdash;认识主板上的CPU供电模块
  6. Linux EOF使用
  7. Segment Tree Build I &amp; II
  8. Python学习之字典详解
  9. hdu3555
  10. 【好用的小技巧】win8兼容、网页不让复制