牛客15034 德玛西亚万岁(状压dp)
题意:
有一个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)相关推荐
- 牛客网 德玛西亚万岁 状压DP
德玛西亚万岁 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史.这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪.有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优 ...
- 德玛西亚万岁-----状压dp
德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士. ...
- nowcoder 多校算法寒假训练营(第二场)F 德玛西亚万岁(状压DP,位运算)
状态DP中很经典的一道题,除了从牛变成人之后好像就没什么变化了吧. 可以预处理出同一行内不会相邻的所有状态. 地图的每一行的01互换后,用一个数字储存. 对于每一个状态,若其与地图&运算的结果 ...
- F-德玛西亚万岁(状压DP)(2018年全国多校算法寒假训练营练习比赛(第二场))
题目链接: https://www.nowcoder.com/acm/contest/74/F 题目大意: 给你n*m大小的棋盘,其中1可以放置英雄,0不能放置.而放置英雄的格子的上下左右不能 ...
- 牛客题单_动态规划课程状压dp习题
牛客题单_动态规划课程状压dp习题 文章目录 牛客题单_动态规划课程状压dp习题 NC14732 锁 NC15034 德玛西亚万岁 NC16418 宝藏 NC17061 多彩的树 NC17890 方格 ...
- 牛客网Chino with Queue【状压DP】
Chino的数学很差,因此Cocoa非常担心.今天,Cocoa准备教Chino和排队有关的问题. 我们总是会学各种排列组合的问题,那些题目大多数都是套路.而Cocoa不喜欢套路. 通常来说,每个人在排 ...
- 牛客每日练习----德玛西亚万岁,求最值,小牛再战
我喜欢给自己压力,必须得定一个很高的目标,逼自己朝着这个目标前进,不管会不会实现,都是一个动力. ----喻言 链接:http ...
- 牛客网多校训练 德玛西亚万岁
题目描述 来源 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识形态,这里的人民为此感到强烈自豪. 有一天他们想去制裁邪恶的比尔吉沃特,于是派遣 ...
- NC15034 德玛西亚万岁(状压dp)
链接:https://ac.nowcoder.com/acm/problem/15034 题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀.职责的意识 ...
最新文章
- Alpha冲刺 - (5/10)
- android onLayout死循环
- .NET(C#)有哪些主流的ORM框架,FreeSql,SqlSugar,Dapper,EF还是...
- 每日一皮:传说中的 10 大口头禅,你说过几个?
- Linux系统简介 、 安装Linux系统 、 RHEL6基本操作
- js获取url参数值
- 推荐策略产品经理:剖析协同过滤(千人千面推荐的核心 )
- 【Android游戏开发十八】解放手指,利用传感器开发游戏!
- 详解Python第三方库(三)----- Pillow库
- eureka服务续约机制
- Android下Activity的生命周期
- 计算机常用英文句子,英文简历常用句子
- 集合WeakHashMap
- Go、Java、C++,下一代测序工具开发谁更强?
- USACO 1.5 Number Triangles
- android同步服务器时间同步,Android时间与服务器同步方案
- 信号与线性系统分析(吴大正,郭宝龙)(2-冲激函数)
- word文档怎么压缩,word文档压缩方法
- 用JavaScript写的贪吃蛇游戏(很简单,很详细)
- tig--颠覆 Git 命令使用体验的神器
热门文章
- ubuntu -- 常规操作 编译、删除
- 光猫桥接后如何连接光猫页面
- python实现微博评论情绪分析,并生成情绪时空分布图
- android相关问题、网摘集锦(持续更新中...)
- 如何理解对连续系统传递函数Z变换
- Git本地仓库提交代码到远程仓库出现报错:fatal: ‘origin‘ does not appear to be a git repository fatal: Could not read fr
- 怎么改造http服务器响应soap,SOAP HTTP 绑定
- 春分将至,品茗赏器怡情!
- 赵本山2007春节晚会小品(畅想版)——超级搞笑
- 台式计算机经常使用的硬盘是什么尺寸,台式硬盘寿命以工作小时计算一般是多少?怎么保养?移动硬盘上文件长期放着不动会不会破损?...