当前位置: 首页 > news >正文

状压DP之棋盘放置类

其实没什么好说的,就是在棋盘上的。

题目

P2915 [USACO08NOV] Mixed Up Cows G(混入的)

这个应该算是旅行商问题。

解法

状态定义:

\(dp_{i,state}\) 表示选择状态为 \(state\),以第 \(i\) 头奶牛为结尾的方案数。

状态转移方程式

\[dp_{j,s|(1<<j)} = \sum dp_{i,s} \]

哦对了!不要忘记了特殊条件!

相邻奶牛的编号之差均超过K

代码

戳我喵~
int a[17];
lint dp[17][(1 << 16) + 10];int main() {int n = re, k = re;for (int i = 0; i < n; i++) a[i] = re;for (int i = 0; i < n; i++) dp[i][1 << i] = 1;for (int s = 0; s < (1 << n); s++) {for (int i = 0; i < n; i++) {if ((s >> i) & 1) {for (int j = 0; j < n; j++) {if (!((s >> j) & 1) && abs(a[j] - a[i]) > k) {dp[j][s | (1 << j)] += dp[i][s];}}}}}lint ans = 0;for (int i = 0; i < n; i++) ans += dp[i][(1 << n) - 1];wr(ans), endl;
}

P1879 [USACO06NOV] Corn Fields G

这题太经典了!

解法

先看数据范围:\(1 \le n,m \le 12\)

可以状压!

我们注意力惊人,发现了只有与它相邻的行与列才有关,所以我们考虑压缩一行的状态。

所以我们定义 \(dp_{i,j}\) 表示第 \(i\) 行,采用了第 \(j\) 个合法状态时的方案总数。

可是合法状态怎么统计呢?

我们可以在预处理阶段处理这合法状态。

合法状态即满足题目的条件,即不能有两块奶牛所在的草地相邻。

我们只需要判断 i & (i >> 1) 是否为 \(0\),如果为 \(0\),那么它就是中意的方案。

最后的 \(DP\) 还算简单,看代码就能理解。
状态转移方程式:

\[dp_{i,j} = \sum dp_{i - 1,k} \]

代码

戳我喵
```plaintext
lint f[20], dp[20][(1 << 15) + 10]; //f是用来记录草地状态的
int n, m;int main() {IAKIOI;n = re, m = re;for (int i = 1; i <= n; i++) for (int j = 0, x; j < m; j++) {x = re;if (x) f[i] |= (1 << j);}vector<int> v;for (int i = 0; i < (1 << m); i++) if ((i & (i >> 1)) == 0) v.push_back(i);dp[0][0] = 1;for (int i = 1; i <= n; i++) {for (int j = 0; j < v.size(); j++) {if ((v[j] & f[i]) == v[j]) {for (int k = 0; k < v.size(); k++) {if (!(v[j] & v[k])) {dp[i][j] = (dp[i][j] + dp[i - 1][k]) % mod;	}}}}}lint ans = 0;for (int i = 0; i < v.size(); i++) ans = (ans + dp[n][i]) % mod;wr(ans), endl;
}
</details>
http://www.jsqmd.com/news/405794/

相关文章:

  • 收藏级干货:10种AI产品形态全解析,2026年AI产品经理必备指南
  • JAVA WEB学习5
  • AI Agent开发者必看!三大推理框架深度解析与落地选型指南(收藏版)
  • 揭秘AI Agent:一个循环搞定所有任务,技术人必备,建议收藏反复阅读
  • 【必看收藏】企业AI Agent频频失败?90%的人都忽略了这一关键“语义层“构建技巧
  • 【GitHub项目推荐--Planning with Files:基于Manus AI工作流的智能任务管理革命】⭐⭐⭐⭐⭐
  • 微服务架构:Python 开发者的实践指南
  • 简单,但不显然
  • 在AI时代如何高效学习
  • 施耐德citect f(x)功能初试
  • VS Code/Antigravity Remote SSH 连接要求输入密码?明明已经配了 SSH 密钥
  • 2026年上海别墅防水公司推荐榜:三大知名品牌公司实力解析与选择指南 - shruisheng
  • 上海别墅防水哪家好?2026企业推荐及选择指南,口碑实力 + 案例分享 + 避坑推荐 - shruisheng
  • 2月23日鲜花
  • Java面试实战:从Spring Boot入门到微服务架构
  • 2026 AI 论文生成软件封神合集(省时 80%+,查重稳过)
  • 零基础自学网安必藏!6个干货网站,从入门到精通全搞定
  • 谁说网安只是修防火墙?他们才是数字世界的守护者
  • 基于安卓的智能垃圾分类助手系统
  • 2026计算机卷到窒息,普通毕业生别硬刚!这个缺口炸了的行业,现在上车刚刚好
  • 2026 最新|计算机大学生 CTF 参赛实战指南:入门路径 + 冲奖策略 + 分阶段时间规划_
  • GEO兴起:AI时代品牌必争的营销新阵地
  • GPU算力出租兴起,低成本破解AI算力困局
  • 门店系统怎么选?多维度测评帮你找对数字管家
  • Interface Segregation Princeple(ISP 接口隔离原则)
  • Liskov Substitution Principle(LSP 里氏替换原则)
  • python: Visitor Pattern
  • python+uniapp微信小程序的毕业论文选题系统设计与实现
  • python+uniapp微信小程序的校园外卖点餐点单系统 商家协同过滤
  • 闲置不用的沃尔玛购物卡可以回收变现吗 - 抖抖收