- 可达教室排座位
code
- @ 2026-2-12 10:21:45
void solve() {
int n, m;
cin >> n >> m;
vector bad(n + 1, 0);
for (int i = 1; i <= n; i++) {
for (int j = 0; j < m; j++) {
int x; cin >> x;
if (x == 0) {
bad[i] |= 1 << j;
}
}
}
vector f(n + 1, vector(1 << m, 0ll));
f[0][0] = 1;
const int mod = 1e8;
for (int i = 1; i <= n; i++) {
for (int x = 0; x < 1 << m; x++) {
for (int y = 0; y < 1 << m; y++) {
if (x & bad[i]) continue;
if (x & y) continue;
if (x & (x >> 1)) continue;
f[i][x] += f[i - 1][y];
}
f[i][x] %= mod;
}
}
ll res = 0;
for (auto x : f[n]) res += x;
cout << res % mod << '\n';
}
0 条评论
目前还没有评论...
信息
- ID
- 455
- 时间
- ms
- 内存
- MiB
- 难度
- 8
- 标签
- 递交数
- 23
- 已通过
- 8
- 上传者