栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

状态压缩:玉米田

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

状态压缩:玉米田

农夫约翰的土地由 M×NM×N 个小方格组成,现在他要在土地里种植玉米。

非常遗憾,部分土地是不育的,无法种植。

而且,相邻的土地不能同时种植玉米,也就是说种植玉米的所有方格之间都不会有公共边缘。

现在给定土地的大小,请你求出共有多少种种植方法。

土地上什么都不种也算一种方法。

输入格式

第 11 行包含两个整数 MM 和 NN。

第 2..M+12..M+1 行:每行包含 NN 个整数 00 或 11,用来描述整个土地的状况,11 表示该块土地肥沃,00 表示该块土地不育。

输出格式

输出总种植方法对 108108 取模后的值。

数据范围

1≤M,N≤121≤M,N≤12

输入样例:

2 3
1 1 1
0 1 0

输出样例:

9

代码如下:

#include 

using namespace std;
const int N=14,mod=1e9;
int g[N];//
int dp[N][1< a[1<>n>>m;
    int b;
    for(int i=0;i>b;
            g[i]=(g[i]<<1)+b;
        }
    for(int i=0;i<1<>1))==0);

    for(int i=1;i<=n+1;i++)
    {
        for(int j=0;j<1<0)) break;//第i+1行只用到状态为0的情况,因为没有i+1行。
            if(((j&g[i-1])==j)&&h[j])
            for(int k=0;k

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297361.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号