1 条题解
-
1
状压dp
数据很水不知道暴力能不能过每一行状态中有牛为1没牛为0 板子里面加一行关于草地的判断即可超级水的好不好啦CODE
#include<bits/stdc++.h> using namespace std; const int mod = 10086; int n, m; int a[13][13]; int F[13]; int f[13][1 << 12 + 5]; bool g[1 << 12 + 5]; int main() { scanf("%d %d", &m, &n); for (int i = 1; i <= m; i++) for (int j = 1; j <= n; j++) { scanf("%d", &a[i][j]); F[i] = (F[i] << 1) + a[i][j]; } for (int i = 0; i < (1 << n); i++) g[i] = (!(i & (i << 1))) && (!(i & (i >> 1))); f[0][0] = 1; for (int i = 1; i <= m; i++) for (int j = 0; j < (1 << n); j++) if (g[j] && ((j & F[i]) == j)) for (int k = 0; k < (1 << n); k++) if ((k & j) == 0) f[i][j] = (f[i][j] + f[i - 1][k]) % mod; int ans = 0; for (int i = 0; i < (1 << n); i++) ans = (ans + f[m][i]) % mod; printf("%d\n", ans); return 0; }
- 1
信息
- ID
- 3
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 3
- 已通过
- 1
- 上传者