德玛西亚万岁

德玛西亚是一个实力雄厚、奉公守法的国家,有着功勋卓著的光荣军史。这里非常重视正义、荣耀、职责的意识形态,这里的人民为此感到强烈自豪。有一天他们想去制裁邪恶的比尔吉沃特,于是派遣了自己最优秀的战士。结果比尔吉沃特领土太小,只有长为n宽为m共计n*m块土地,其中有些土地标记为0表示为高山峻岭或者深海湖泊,英雄们无法在其中站立,只有标记为1的土地才能容纳一个英雄。德玛西亚的英雄们战斗时有一个特点,他们不希望队友站在自己旁边显得很暧昧。请问最多能有多少种安排德玛西亚英雄的方法?

输入描述:
输入包含多组测试数据;
每组数据的第一行包含2个整数n和m (n <= 12, m <= 12 ),之间用空格隔开;
接下来的n行,每行m个数,表示n*m的比尔吉沃特领土。
输出描述:
输出一个整数n代表安排应用的方法。
(答案取膜100000000)

解题思路:

dp[i][j] 代表第i行 状态为j时的策略个数, j 为二进制的串 ,1 代表有英雄 ,0 代表无 ,然后从第一行开始枚举每种情况,然后每行的个数是上面一行转移过来的,所以要加上,详细解释见代码。

Code:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <cstring>
#include <string>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
const int mod=100000000;
const int N = 13;
ll mp[N], dp[N][1 << N];
int main()
{int n,m,x;while(cin>>n>>m){memset(dp,0,sizeof(dp));memset(mp,0,sizeof(mp));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>x;mp[i]=(mp[i]<<1)+x;          //二进制存图}}dp[0][0]=1; // 第i行 第j种(二进制串)存储的方式有几种    第0行只有0 --》 所以第一行都可以放英雄for(int i=1;i<=n;i++){for(int j=0;j<(1<<m);j++){ //枚举这一行可能的状态if(j&(j<<1)||(mp[i]&j)!=j) continue;// j&(j<<1) 此行不相邻,(mp[i]&j)!=j 英雄战立在1上for(int k=0;k<(1<<m);k++){ //枚举上一行的所有状态if(j&k) continue; //和上一行不相邻dp[i][j]=(dp[i][j]+dp[i-1][k])%mod;}}}ll ans=0;for(int i=0;i<(1<<m);i++){ans=(ans+dp[n][i])%mod;}cout<<ans<<endl;}return 0;
}

牛客网 德玛西亚万岁 状压DP相关推荐

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

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

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

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

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

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

  4. 牛客15034 德玛西亚万岁(状压dp)

    题意: 有一个n*m的01矩阵,标记为1的位置表示被阻碍,不能放东西. 现在要在这个矩阵上放棋子,要求棋子之间不能相邻,问有多少种放置方法. 答案对1e8取模 数据范围:n,m<=12 解法: ...

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

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

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

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

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

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

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

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

  9. 状压dp板子 德玛西亚万岁

    好吧,虽然它是道板子题,但我还是做了很久,wa了n发,主要还是不能很清晰的整理思路,并且多组样例的清空也总是有遗漏...(真是个菜鸡) 链接:登录-专业IT笔试面试备考平台_牛客网 n*m的土地,要求 ...

最新文章

  1. 几个C++问题提示的莫名其妙,附录解决方法
  2. Linux系统下的/etc/nsswitch.conf文件
  3. 数据量大mysql当月_mysql 1.5倍数据量导致20多倍的执行时间?
  4. Windows核心编程 第十七章 -内存映射文件(上)
  5. 【NLP】 NLP中应用最广泛的特征抽取模型-LSTM
  6. java程序错误类型及异常处理
  7. 牛客练习赛36 F-Rabbit的蛋糕 (叉积求面积, 记录前缀)
  8. 计算机英语 传输介质,计算机英语实用教程unit7
  9. WIAC上,华为展区都有点儿啥?
  10. orm2 中文文档 3.3 模型钩子
  11. create报错不是函数_node.js – sequelize .create不是函数错误
  12. 基础:新建个maven项目
  13. 华为云怎么样_为什么阿里云要迁移到华为云?详细过程分析
  14. 无法读源文件或磁盘_拯救动态磁盘的一些尝试
  15. 从事计算机专业的人职业道德,计算机专业技术人员职业道德建设研究
  16. vue修改默认V型图标
  17. 洛谷T37537 公主的考验
  18. Python学习笔记之基础练习(一)
  19. 在华为公司的项目总结
  20. 通过SqlDbx导出*.sql,然后倒入到SQLServer2005

热门文章

  1. 人工智能:声纹识别技术介绍
  2. 三菱M70仿真系统软件PLC 相似度百分之百 真机
  3. 【腾讯云原生降本增效大讲堂】京东云原生大规模实践之路
  4. 如何查看mysql数据库的密码是什么_如何查看mysql数据库用户密码
  5. 计算机数据在经济学的应用论文,数学在经济学中的运用论文
  6. 如何将PDF文件转换为Excel表格?这两个方法方便实用!
  7. language express
  8. 曾轶可哥哥太吓人了~~~
  9. 极致CMS1.7 前台SQL注入(CNVD-2021-26000)
  10. AMOS结构方程模型路径分析不显著