补题链接:Here

经典状压DP问题

坑点,注意多组输入。。。

const int N = 16, mod = 100000000;
int f[N][1 << N];
int a[N];
void solve() {
int n, m;
while (cin >> n >> m) {
memset(f, 0, sizeof(f)), memset(a, 0, sizeof(a));
for (int i = 1; i <= n; ++i) {
int t = 0;
for (int j = 0, x; j < m; ++j) {
cin >> x;
if (x)t += (1 << j);
}
a[i] = t;//记录每行的状态
}
f[0][0] = 1;
for (int i = 1; i <= n; i++) { ///枚举每一行
for (int j = 0; j < (1 << m); j++) { ///枚举当前行所有情况
if ((j & a[i]) != j) ///有些位置不能站
continue;
if (j & (j << 1)) ///相邻不能有1
continue;
for (int k = 0; k < (1 << m); k++) { ///枚举上一行所有情况
if (!(j & k)) { ///当前行和上一行没有相邻的英雄
f[i][j] = (f[i][j] + f[i - 1][k]) % mod;
}
}
}
}
int ans = 0;
for (int i = 0; i < (1 << m); ++i) ans += f[n][i], ans %= mod;
cout << ans << "\n";
}
}

【每日一题】41. 德玛西亚万岁 (状态压缩DP)的更多相关文章

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

    链接:https://www.nowcoder.com/acm/contest/74/F来源:牛客网 题目描述 德玛西亚是一个实力雄厚.奉公守法的国家,有着功勋卓著的光荣军史. 这里非常重视正义.荣耀 ...

  2. 状态压缩dp增量统计贡献——cf1238E(好题)

    这题的状态设计非常巧妙,因为dp[S]表示的并非当前正确的值,而是维护一个中间量,这个中间量在到达末状态时才正确 当然官方的题解其实更加直观,只不过理解起来其实有点困难 /* 给定一个串s,字符集为2 ...

  3. POJ 2441 Arrange the Bulls 状态压缩递推简单题 (状态压缩DP)

    推荐网址,下面是别人的解题报告: http://www.cnblogs.com/chasetheexcellence/archive/2012/04/16/poj2441.html 里面有状态压缩论文 ...

  4. 状态压缩DP入门题

    . /*本题为状态压缩题 题目大意 : 一个矩阵里有很多格子,每个格子有两种状态,可以放牧和不可以放牧, 可以放牧用1表示,否则用0表示,在这块牧场放牛,要求两个相邻的方 格不能同时放牛(不包括斜着的 ...

  5. [每日一题2020.06.09] leetcode #97 交错字符串 dp

    题目链接 利用动态规划的思想, 对于每种状态(i, j)来说都有(i-1, j) 和 (i,j-1) 需要注意的问题 : 初始化的问题,先把i=0和j=0的状态都初始化后才可以进行dp否则发生数组越界 ...

  6. 状态压缩dp第一题

    标签: ACM 题目: Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; ...

  7. Hdu-1565 方格取数(1) (状态压缩dp入门题

    方格取数(1) Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  8. 状态压缩---状态压缩dp第一题

    标签: ACM 题目: Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; ...

  9. POJ Corn Fields 状态压缩DP基础题

    题目链接:http://poj.org/problem?id=3254 题目大意(名称什么的可能不一样,不过表达的意思还是一样的): 种玉米 王小二从小学一年级到现在每次考试都是班级倒数第一名,他的爸 ...

  10. poj 3254(状态压缩基础题)

    题意:就是你给一个n行m列的矩阵,矩阵里的元素由0和1组成,1代表肥沃的土地可以种植作物,0则不可以种植作物,并且相邻的土地不能同时种植作物,问你有多少种种植方案. 分析:这是我做的第一道状态压缩dp ...

随机推荐

  1. iOS APP包分析工具

    介绍 分享一款用于分析iOSipa包的脚本工具,使用此工具可以自动扫描发现可修复的包体积问题,同时可以生成包体积数据用于查看.这块工具我们团队内部已经使用很长一段时间,希望可以帮助到更多的开发同学更加 ...

  2. 在 Windows 系统上运行 VIC 水文模型

    目录 配置 WSL2 和 Ubuntu 系统 启用 WSL2 安装 Linux 发行版 配置 Ubuntu 安装 VIC 并测试 Stehekin 数据集 VIC 模型安装 samples 测试 VI ...

  3. JAVAweek8

    编程,要学会将大问题逐渐分解成一个个小问题,逐步完成. 将整个程序分成若干个组件(分解) 将多次出现的相似功能设成独立的方法(模式识别.抽象.算法) 调试每个独立组件的健壮性(单元测试) 按照功能要求 ...

  4. 主界面(零基础适合小白)基础javaweb前端项目实战【包含增删改查,mysql】三

    首先编写sp文件(index.jsp) <%@ page contentType="text/html;charset=UTF-8" language="java& ...

  5. 23C新特性:True Cache的介绍

    我们的文章会在微信公众号"Oracle恢复实录"和博客网站"https://www.cnblogs.com/www-htz-pw/" 同步更新 ,欢迎关注收藏, ...

  6. Net 高级调试之十一:托管堆布局架构和对象分配机制

    一.简介 今天是<Net 高级调试>的第十一篇文章,这篇文章来的有点晚,因为,最近比较忙,就没时间写文章了.现在终于有点时间,继续开始我们这个系列.这篇文章我们主要介绍托管堆的架构,对象的 ...

  7. [ARC105E] Keep Graph Disconnected

    题目链接 好题. 如果 \(1\) 和 \(n\) 一直联通,开始即结束. 如果 \(n\mod 4=1\),那么 \(\frac 12x(x+1)+\frac12(n-x)(n-x+1)\) 为偶数 ...

  8. 基于Raft算法的DLedger-Library分析

    1 背景 在分布式系统应用中,高可用.一致性是经常面临的问题,针对不同的应用场景,我们会选择不同的架构方式,比如master-slave.基于ZooKeeper选主.随着时间的推移,出现了基于Raft ...

  9. StringBuilder、StringBuffer

    StringBuilder 1.concat() 拼接字符串 2.indexOf() 查找 3.replace() 替换 4.subString(1,2) 截取 0,1,2 1开始 2结束 Strin ...

  10. MOSS对话式大型语言模型

    MOSS是复旦大学自然语言处理实验室发布的一种类似于ChatGPT的会话语言模型.MOSS能够按照用户的指示执行各种自然语言任务,包括回答问题.生成文本.摘要文本.生成代码等.MOSS还能够挑战错误的 ...