长春网络赛2012 ACM/ICPC Asia Regional Changchun Online LianLianKan
2012-09-09 19:57
405 查看
http://acm.hdu.edu.cn/showproblem.php?pid=4272
题目见链接:很好的状态压缩DP题,以前的确是没写过这样的状压DP,大开眼界。转移方程倒不是很难,就是处理初始条件比较纠结,因为当数目不满足压缩维数的时候,该怎么办,越想脑子越乱最后还是该怎么样就怎么样,即在原来处理的基础上加一点判断就行了!
题目见链接:很好的状态压缩DP题,以前的确是没写过这样的状压DP,大开眼界。转移方程倒不是很难,就是处理初始条件比较纠结,因为当数目不满足压缩维数的时候,该怎么办,越想脑子越乱最后还是该怎么样就怎么样,即在原来处理的基础上加一点判断就行了!
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> using namespace std; const int MAXN = 1025; int a[MAXN]; //第一维的状态是当前栈顶的位置,第二维是前十个位置的元素的状态,是否被取走,从上到下,从高位到低位 int dp[MAXN][MAXN]; bool DFS(int pos, int now) { if (pos < 0) { return true; } if (dp[pos][now] != -1) return dp[pos][now]; int now1 = now; if (!(now1 & (1 << 9))) { now1 <<= 1; now1 |= 1; return dp[pos][now] = DFS(pos - 1, now1); } else { now1 ^= (1 << 9); int t = 0; for (int i = 8; i >= 0; i--) { if (t >= 5) break; if ((now1 & (1 << i))) { if (pos - 9 + i >= 0 && a[pos] == a[pos - 9 + i]) { t++; now1 ^= (1 << i); if (DFS(pos - 1, (now1 << 1) | 1)) { return dp[pos][now] = true; } now1 ^= (1 << i); } } } } return dp[pos][now] = false; } int main() { int N; int i; while (scanf("%d", &N) != EOF) { for (i = 0; i < N; i++) { scanf("%d", &a[i]); } if (N & 1) { printf("0\n"); continue; } int now = 0; int temp = 1; for (i = 0; i < N && i < 10; i++) { now |= temp; temp <<= 1; } for (int j = i; j < 10; j++) { now <<= 1; } memset(dp, -1, sizeof (dp)); if (DFS(N - 1, now)) { printf("1\n"); } else { printf("0\n"); } } return 0; }
相关文章推荐
- hdu 4274 2012长春赛区网络赛 树形dp ***
- HDU4267(2012长春网络赛)
- 长春赛区2012 A Simple Problem with Integers 1001题 (网络赛)
- HDU 4268 树状数组 2012长春网络赛
- 2012长春网络赛 B题(贪心+multiset处理二维问题)
- hdu 4268 Alice and Bob(2012 ACM/ICPC Asia Regional Changchun Online 12年长春网络赛)
- 长春赛区2012 USACO ORZ 1011题 (网络赛)
- HDU4268 2012ACM长春赛区网络赛 Alice and Bob
- HDU4268 2012ACM长春赛区网络赛 Alice and Bob
- hdu 4274 Spy's Work (2012 长春网络赛)
- HDU 4272LianLianKan 2012长春网络赛F题(思维) 暴力,dfs可以水过,正解是状态压缩dp
- 2012长春网络赛1011
- 2012 ACM/ICPC 长春赛区网络赛 1006(dfs)
- hdu 4272 2012长春赛区网络赛 dfs暴力 ***
- hdu 4273 2012长春赛区网络赛 三维凸包中心到最近面距离 ***
- 长春赛区2012 Alice and Bob 1002题 (网络赛)
- 2012长春网络赛
- 2012长春网络赛赛后【完结】
- hdu 4274 Spy's Work(2012 长春网络赛 树形DP)
- 2012 ACM/ICPC 长春赛区网络赛