题意:

有一个n*m的01矩阵,标记为1的位置表示被阻碍,不能放东西。
现在要在这个矩阵上放棋子,要求棋子之间不能相邻,问有多少种放置方法。
答案对1e8取模

数据范围:n,m<=12

解法:

令d(i,sta)表示第i行状态为sta满足条件的方案数

如果第i行地图的状态是a(i),当前枚举到的状态是s,那么:
1.s&a[i]必须等于s,否则说明和地图冲突,不合法。
2.s&(s<<1)必须等于0,否则说明存在左右相邻,不合法
枚举上一行的状态s1
3.s1&s必须等于0,否则说明存在上下相邻,不合法。如果d(i,s)加上d(i-1,s1)

ps:
212=4e3,枚举层数+枚举当前状态+枚举上一层状态都快2e8了,为啥1s的时限不会Tle捏??

code:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=15;
const int mod=1e8;
int d[N][1<<N];//d[i][sta]表示第i行状态为sta的合法方案数
int a[N];//a[i]表示第i行的状态
int n,m;
signed main(){while(cin>>n>>m){for(int i=1;i<=n;i++){for(int s=0;s<(1<<m);s++){d[i][s]=0;}}for(int i=1;i<=n;i++){int temp=0;for(int j=0;j<m;j++){int x;cin>>x;if(x)temp+=(1<<j);}a[i]=temp;}d[0][0]=1;for(int i=1;i<=n;i++){for(int s=0;s<(1<<m);s++){//枚举当前行状态if((s&a[i])!=s)continue;//有位置不能放,不合法if(s&(s<<1))continue;//存在左右相邻,不合法for(int last=0;last<(1<<m);last++){//枚举上一行状态if(last&s)continue;//存在上下相邻,不合法d[i][s]=(d[i][s]+d[i-1][last])%mod;}}}int ans=0;for(int s=0;s<(1<<m);s++){ans=(ans+d[n][s])%mod;}cout<<ans<<endl;}return 0;
}

牛客15034 德玛西亚万岁(状压dp)相关推荐

  1. 牛客网 德玛西亚万岁 状压DP

    德玛西亚万岁 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史.这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪.有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优 ...

  2. 德玛西亚万岁-----状压dp

    德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士. ...

  3. nowcoder 多校算法寒假训练营(第二场)F 德玛西亚万岁(状压DP,位运算)

    状态DP中很经典的一道题,除了从牛变成人之后好像就没什么变化了吧. 可以预处理出同一行内不会相邻的所有状态. 地图的每一行的01互换后,用一个数字储存. 对于每一个状态,若其与地图&运算的结果 ...

  4. F-德玛西亚万岁(状压DP)(2018年全国多校算法寒假训练营练习比赛(第二场))

    题目链接:     https://www.nowcoder.com/acm/contest/74/F 题目大意: 给你n*m大小的棋盘,其中1可以放置英雄,0不能放置.而放置英雄的格子的上下左右不能 ...

  5. 牛客题单_动态规划课程状压dp习题

    牛客题单_动态规划课程状压dp习题 文章目录 牛客题单_动态规划课程状压dp习题 NC14732 锁 NC15034 德玛西亚万岁 NC16418 宝藏 NC17061 多彩的树 NC17890 方格 ...

  6. 牛客网Chino with Queue【状压DP】

    Chino的数学很差,因此Cocoa非常担心.今天,Cocoa准备教Chino和排队有关的问题. 我们总是会学各种排列组合的问题,那些题目大多数都是套路.而Cocoa不喜欢套路. 通常来说,每个人在排 ...

  7. 牛客每日练习----德玛西亚万岁,求最值,小牛再战

    我喜欢给自己压力,必须得定一个很高的目标,逼自己朝着这个目标前进,不管会不会实现,都是一个动力.                                      ----喻言 链接:http ...

  8. 牛客网多校训练 德玛西亚万岁

    题目描述   来源 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣 ...

  9. NC15034 德玛西亚万岁(状压dp)

    链接:https://ac.nowcoder.com/acm/problem/15034 题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识 ...

最新文章

  1. Alpha冲刺 - (5/10)
  2. android onLayout死循环
  3. .NET(C#)有哪些主流的ORM框架,FreeSql,SqlSugar,Dapper,EF还是...
  4. 每日一皮:传说中的 10 大口头禅,你说过几个?
  5. Linux系统简介 、 安装Linux系统 、 RHEL6基本操作
  6. js获取url参数值
  7. 推荐策略产品经理:剖析协同过滤(千人千面推荐的核心 )
  8. 【Android游戏开发十八】解放手指,利用传感器开发游戏!
  9. 详解Python第三方库(三)----- Pillow库
  10. eureka服务续约机制
  11. Android下Activity的生命周期
  12. 计算机常用英文句子,英文简历常用句子
  13. 集合WeakHashMap
  14. Go、Java、C++,下一代测序工具开发谁更强?
  15. USACO 1.5 Number Triangles
  16. android同步服务器时间同步,Android时间与服务器同步方案
  17. 信号与线性系统分析(吴大正,郭宝龙)(2-冲激函数)
  18. word文档怎么压缩,word文档压缩方法
  19. 用JavaScript写的贪吃蛇游戏(很简单,很详细)
  20. tig--颠覆 Git 命令使用体验的神器

热门文章

  1. ubuntu -- 常规操作 编译、删除
  2. 光猫桥接后如何连接光猫页面
  3. python实现微博评论情绪分析,并生成情绪时空分布图
  4. android相关问题、网摘集锦(持续更新中...)
  5. 如何理解对连续系统传递函数Z变换
  6. Git本地仓库提交代码到远程仓库出现报错:fatal: ‘origin‘ does not appear to be a git repository fatal: Could not read fr
  7. 怎么改造http服务器响应soap,SOAP HTTP 绑定
  8. 春分将至,品茗赏器怡情!
  9. 赵本山2007春节晚会小品(畅想版)——超级搞笑
  10. 台式计算机经常使用的硬盘是什么尺寸,台式硬盘寿命以工作小时计算一般是多少?怎么保养?移动硬盘上文件长期放着不动会不会破损?...