HOJ 2662 Pieces Assignment
来源:互联网 发布:mac电磁阀说明书 编辑:程序博客网 时间:2024/06/07 06:07
新学状态压缩DP。
http://www.cnblogs.com/avril/p/3282295.html
#include<bits/stdc++.h>#define LL long longusing namespace std;const int maxl = (1<<9) + 5;int n, m, k, mark[maxl], len;LL dp[88][22][maxl];inline void getInit(){ memset(dp, 0, sizeof(dp)); len = 0; memset(mark, 0, sizeof(mark));}inline int num(int x){//十进制下计数状态 int sum = 0; while(x){ if(x&1) sum++; x = x >> 1; } return sum;} inline bool judge(int x){ if(x & (x << 1)) return 0;//巧判相邻 return 1;}int main(){ while(scanf("%d%d%d", &n, &m, &k) != EOF){ getInit(); if(m > n) swap(n, m); for(int i = 0; i < (1<<m); i++)//初始化 if(judge(i)){ dp[1][num(i)][len] = 1; mark[len++] = i; } for(int i = 2; i <= n; i++) for(int j = 0; j <= k; j++) for(int r = 0; r < len; r++) for(int l = 0; l < len; l++){ int tmp = num(mark[r]); if(mark[r] & mark[l] || j < tmp) continue; dp[i][j][r] += dp[i-1][j-tmp][l]; } LL ans = 0; for(int i = 0; i < len; i++) ans += dp[n][k][i]; printf("%lld\n", ans); } return 0;}
阅读全文
1 0
- hoj 2662 Pieces Assignment
- HOJ 2662 Pieces Assignment
- HOJ 2662 Pieces Assignment
- hoj 2662 Pieces Assignment 状态压缩dp入门
- HOJ 2662 Pieces Assignment(状态压缩DP)
- HOJ 2662 Pieces Assignment(状态压缩DP)
- HOJ-2662Pieces Assignment(状态压缩,动态规划)
- HIT 2662 Pieces Assignment
- HOJ2662 Pieces Assignment 题解
- 【HOJ2662】Pieces Assignment(状压dp)
- Pieces
- hoj 2662
- Assignment
- Hoj 2662 棋盘问题
- HOJ
- Small pieces
- pieces框架
- hdu4628 Pieces
- velocity语法
- Broadcast 分析 --- 之二
- PAT 1022. Digital Library (30) map及迭代器用法以及用getline读入空格
- 简单封装一个上传插件——支持拖拽和预览
- MySQL的学习
- HOJ 2662 Pieces Assignment
- 数据库范式
- 过滤驱动的概念
- HDU5542(树状数组优化DP)
- 关于作用域和域解析
- jQuery异步请求ajax()之complete参数详解
- Gym
- 软件测试笔试
- 【问题解决】SSM-@Transactional注解事务无效探讨