/*
dp[i][j]表示到第i行的状态j有多少放置方式
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
using namespace std;
#define mod 100000000
int dp[][],mp[][],cur[],ans,n,m;
vector<int>v; inline int legal(int x){
if(x&(x<<))return false;
return true;
}
void init(){
v.clear();
ans=;
memset(dp,,sizeof dp);
for(int i=;i<=(<<m)-;i++)
if(legal(i)) v.push_back(i);
for(int i=;i<n;i++)
for(int j=;j<m;j++)
if(mp[i][j]==)cur[i]+=(<<(m-j-));
}
int place(int s,int k){//状态s能否放在第k行
if(s&cur[k])return false;
return true;
} int main(){
while(cin>>n>>m){
for(int i=;i<n;i++)
for(int j=;j<m;j++)
cin>>mp[i][j];
init();
for(int i=;i<v.size();i++)//先处理第0行的情况
if(place(v[i],))dp[][i]=;
for(int i=;i<n;i++)
for(int t=;t<v.size();t++){
if(place(v[t],i)){//如果状态t可以放在第i行
for(int j=;j<v.size();j++)//枚举i-1行的状态
if(!place(v[j],i-) || v[t]&v[j])continue;
else dp[i][t]=(dp[i][t]+dp[i-][j])%mod;
}
} for(int j=;j<v.size();j++)
ans=(ans+dp[n-][j])%mod;
printf("%d\n",ans); }
}

poj3254 炮兵阵地弱化版,记数类dp的更多相关文章

  1. POJ 1185 炮兵阵地(经典的状态压缩DP)

    题意:中文题. 思路,经典的状态压缩题目. 由于列长比较小,我们可以以行为阶段用状态压缩来做. 由于攻击只占两个格,这样从行的角度看,第i行的炮兵只与前i-1和前i-2行有关系.这样如果用j,k,l分 ...

  2. 炮兵阵地(POJ 1185状压dp)

    题意:n*m地图'H'能放'p'不能放,布兵的方格上下左右不能布兵,给你地图求最大布兵数 分析:关系到前两行,所以dp[i][j][k]第i行状态为j,i-1行状态为k时的最大布兵数, 先求出所有可行 ...

  3. POJ_1185_炮兵阵地 dp+状态压缩

    题目:炮兵阵地 链接:http://poj.org/problem?id=1185 解题思路: 首先用 int 来表示每一行的情况,比如说第一行是k1,那么[ k1&(k1>>2) ...

  4. 洛谷P1569属牛的抗议 超级强力无敌弱化版

    P1569 [USACO11FEB]属牛的抗议Generic Cow Prote- 题目描述 约翰家的N头奶牛聚集在一起,排成一列,正在进行一项抗议活动.第i头奶牛的理智度 为Ai,Ai可能是负数.约 ...

  5. POJ 1185 炮兵阵地(动态规划+状态压缩)

    炮兵阵地 Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原( ...

  6. 你好,C++(38)从问题描述中发现对象的属性和行为 6.4 工资程序成长记:类与对象(上)

    6.4  工资程序成长记:类与对象 “夜半三更哟,盼天明:寒冬腊月哟,盼春风.若要盼得哟,涨工资,岭上……”自从上次老板许诺给小陈涨工资以后,一转眼又过去几个月了,可是涨工资的事一点动静都没有.小陈只 ...

  7. [poj1185]炮兵阵地_状压dp

    炮兵阵地 poj-1185 题目大意:给出n列m行,在其中添加炮兵,问最多能加的炮兵数. 注释:n<=100,m<=10.然后只能在平原的地方建立炮兵. 想法:第2到状压dp,++.这题显 ...

  8. 最短路径 SPFA P3371 【模板】单源最短路径(弱化版)

    P3371 [模板]单源最短路径(弱化版) SPFA算法: SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环.SPFA 最坏情况下复 ...

  9. POJ 1185 炮兵阵地 状压dp

    题目链接: http://poj.org/problem?id=1185 炮兵阵地 Time Limit: 2000MS Memory Limit: 65536K 问题描述 司令部的将军们打算在N*M ...

随机推荐

  1. gcc -O0 -O1 -O2 -O3 四级优化选项及每级分别做什么优化

    参考链接 : http://blog.csdn.net/qq_31108501/article/details/51842166 gcc -D选项的作用,声明宏 参考链接:  http://blog. ...

  2. Android视频压缩

    最推荐(使用方便,默认压缩为原来视频大小的1/4左右): https://blog.csdn.net/qq_35373333/article/details/79564991  https://git ...

  3. PHP 简单学习(“hello world”,变量,运算符)

    在PHP中: 变量用$来规范 变量名:可以用字母,数字,_来组成,且不能用数字开头(与其他变成命名规范基本一致) <?php $age = 28;    // 变量名 $age = $age + ...

  4. xadmin插件开发

    参考:http://blog.csdn.net/qq_15682489/article/details/70174784 项目中新添加的organization模块需要在toolbar中添加“课表详细 ...

  5. SpringBoot单元测试示例2

    package cn.coreqi.security.controller; import org.junit.Before; import org.junit.Test; import org.ju ...

  6. nginx Access-Control-Allow-Origin css跨域

    问题原因:nginx 服务器 css 字体跨域 以及img相对路径 问题 描述:用nginx做页面静态化时遇到了两个问题 1.我有两个静态资源服务器 static.xxx.com  和 item.xx ...

  7. 转换简体中文和繁体中文 cconv-0.6.2 for win32 static

    dos状态下 chcp 65001 echo "转换简体中文和繁体中文"|cconv -f utf-8 -t utf8-tw 显示 "轉換簡體中文和繁體中文" ...

  8. UML建模图

    UML 2.0规范 迅速成为建立软件系统可视化.规范.文档的标准.统一建模语言(UML) 也被用于非软件系统的建模,并在很多领域,诸如金融,军事,工程方面应用广泛. UML 2 定义了13种基本的图, ...

  9. Android获取本机号码及运营商

    import android.content.Context; import android.telephony.TelephonyManager; import android.util.Log; ...

  10. python学习第6天

    id is ==  代码块 代码块的缓存机制 小数据池(不同代码块的缓存机制) 小数据池(驻留机制)总结 数据类型之间的转换 int bool str 三者转化是可以的. bool 可以与所有的数据类 ...