牛客-Corn Fields
2024-09-07 07:45:53
题目传送门
sol:状压和动规,把每一行的m个01压缩成一个int
- 状压dp
#include "bits/stdc++.h"
using namespace std;
const int MAXN = ;
const int MOD = 1e8;
int n, m;
bool mp[MAXN][MAXN];
vector<int> num[MAXN], dp[MAXN];
void dfs(int i, int j, int k) {
if (j > m) {
num[i].push_back(k);
dp[i].push_back();
return;
}
dfs(i, j + , k << );
if ((k & ) == && mp[i][j + ] == ) dfs(i, j + , k << | );
}
int main() {
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i++) {
for (int j = ; j <= m; j++) scanf("%d", &mp[i][j]);
dfs(i, , );
}
for (int j = ; j < dp[].size(); j++) dp[][j] = ;
for (int i = ; i <= n; i++) {
for (int j = ; j < dp[i].size(); j++) {
for (int k = ; k < dp[i - ].size(); k++) {
if ((num[i][j] & num[i - ][k]) == )
{
dp[i][j] = (dp[i][j] + dp[i - ][k]) % MOD;
}
}
}
}
int ans = ;
for (int j = ; j < dp[n].size(); j++) ans = (ans + dp[n][j]) % MOD;
printf("%d\n", ans);
return ;
}
最新文章
- TortoiseGit 连接oschina不用每次输入用户名和密码的方法
- 玩转Android Camera开发(二):使用TextureView和SurfaceTexture预览Camera 基础拍照demo
- 【CodeVS】p1038 一元三次方程求解
- Mysql服务器相互作用的通讯协议包括TCP/IP,Socket,共享内存,命名管道
- Doragon Kuesuto 1.15
- 使用getUserMedia 调用摄像头
- UVaLive 6859 Points (几何,凸包)
- 转载SSIS中的容器和数据流—数据转换(Transformations)
- HTML5 事件
- String中的==与Empty
- CentOS Linux解决 Device eth0 does not seem to be present
- python urllib模块
- 10 种机器学习算法的要点(附 Python 和 R 代码)
- python and pycharm and django 环境配置
- 12-简单认识下margin
- python的介绍和及基本的使用
- 20165227 学习基础和C语言基础调查
- router基本使用
- 各种 Python 库/模块/工具
- RabbitMQ与Spring集成