(待解决) hdu HDU4539 郑厂长系列故事——排兵布阵 (状态压缩dp~)
来源:互联网 发布:广东广播开放大学网络 编辑:程序博客网 时间:2024/05/02 01:01
依旧是怎么也找不出bug系列。。。
:-(
先放这
#include <cstdio>#include <cstring>#include <iostream>using namespace std;#define Max 150int n, m;int row[Max];int dp[Max][200][200];int num[200];int nstate;int state[200];void init() { nstate = 0; for (int i = 0; i < (1 << m); i++) { if (i & (i << 2)) continue; state[nstate++] = i; }}int count_one(int x) { int cnt = 0; while (x) { cnt++; x &= (x - 1); } return cnt;}int main(void) { int x; while (~scanf("%d%d", &n, &m)) { memset(dp, -1, sizeof(dp)); memset(state, 0, sizeof(state)); init(); memset(row, 0, sizeof(row)); memset(num, 0, sizeof(num)); for (int i = 0; i < n; i++) { for (int j = m - 1; j >= 0; j--) { scanf("%d", &x); row[i] += (!x) << j; } } for (int i = 0; i < nstate; i++) { num[i] = count_one(i); if (row[0] & state[i]) continue; dp[0][0][i] = num[i]; } for (int i = 1; i < n; i++) { for (int j = 0; j < nstate; j++) { if (row[i] & state[j]) continue; for (int k = 0; k < nstate; k++) { if (row[i - 1] & state[k]) continue; if (((k << 1) & j) || ((k >> 1) & j)) continue; for (int t = 0; t < nstate; t++) { if (dp[i - 1][t][k] == -1) continue; if (state[t] & state[j]) continue; if (((t << 1) & k) || ((t >> 1) & k)) continue; dp[i][k][j] = max(dp[i - 1][t][k] + num[j], dp[i][k][j]); } } } } int ans = 0; for (int i = 0; i < nstate; i++) { for (int j = 0; j < nstate; j++) ans = max(ans, dp[n - 1][j][i]); } printf("%d\n", ans); } return 0;}
阅读全文
0 0
- (待解决) hdu HDU4539 郑厂长系列故事——排兵布阵 (状态压缩dp~)
- hdu4539郑厂长系列故事——排兵布阵 dp+状态压缩
- HDU4539:郑厂长系列故事——排兵布阵(状态压缩)
- 状态压缩dp hdu 4539 郑厂长系列故事——排兵布阵
- hdu 4539 郑厂长系列故事——排兵布阵(状态压缩DP)
- hdu 4539 郑厂长系列故事——排兵布阵 (状态压缩dp)
- hdu 4539 郑厂长系列故事——排兵布阵 状态压缩dp
- hdu 4539 郑厂长系列故事——排兵布阵(状态压缩dp)
- hdu 4539 郑厂长系列故事——排兵布阵 状态压缩+dp;
- hdu 4539 郑厂长系列故事——排兵布阵 (状态压缩dp)
- HDU 4539 郑厂长系列故事——排兵布阵(状态压缩dp)
- HDU 4539 郑厂长系列故事——排兵布阵 (状态压缩DP)
- HDU ACM 4539 郑厂长系列故事——排兵布阵->状态压缩DP
- 【状态压缩DP】 HDU 4539 郑厂长系列故事——排兵布阵
- hdu 4539 郑厂长系列故事——排兵布阵(状态压缩dp)
- hdu4539 郑厂长系列故事——排兵布阵(状压dp)
- HDU4539 郑厂长系列故事——排兵布阵【状压DP】
- HDOJ 4539 郑厂长系列故事——排兵布阵(状态压缩dp)
- TextView实现点击部分文字跳转,实现微信朋友圈评论Item的显示效果
- js遍历ajax回调函数返回值中的object对象
- linux下查看java虚拟机(JVM)GC情况
- 二叉树---(3)前序遍历,中序遍历,后序遍历
- [spark] Shuffle Read解析 (Sort Based Shuffle)
- (待解决) hdu HDU4539 郑厂长系列故事——排兵布阵 (状态压缩dp~)
- SQL float 类型相减为0时得1.11022e-016
- 小数组拷贝
- 共享电动汽车方案怎么做
- 正则表达式使用笔记
- Spring官网下载dist.zip的几种方法
- PAT甲级 1053. Path of Equal Weight (30)
- 《大话设计模式》java实现之观察者模式
- 【IMP】导出的时候显示ddl建表语句