http://acm.nyist.net/JudgeOnline/problem.php?pid=492

dp[i][j][K] 表示第i行第j个状态放了K个国王,有多少种方法

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long LL;
int n,K,cnt;
int s[150];
int p[150];
LL dp[11][150][101];
bool ok(int x){if(x&(x<<1)) return false;return true;
}
void init(){cnt = 0;for(int i = 0;i < (1<<n);i++){if(ok(i)) s[cnt++] = i;}
}
int cal(int x){int count = 0;while(x){count ++;x &= (x-1);}return count;
}
int main(){while(cin >> n >> K){init();memset(dp,0,sizeof(dp));for(int i = 0;i < cnt;i++){p[i] = cal(s[i]);if(p[i] <= K) dp[0][i][p[i]] = 1;}for(int i = 1;i < n;i++){for(int j = 0;j < cnt;j++){if(p[j] > K) continue;for(int k = 0;k < cnt;k++){if(s[j]&s[k]) continue;if((s[j]&(s[k]<<1))||(s[j]&(s[k]>>1))) continue;for(int r = 0;r <= K;r++)if(r + p[j] <= K )dp[i][j][r+p[j]] += dp[i-1][k][r];}}}LL ans = 0;for(int i = 0;i < cnt;i++){ans += dp[n-1][i][K];}cout << ans << endl;}
}

nyoj-492 King(状态压缩)相关推荐

  1. 提高篇 第五部分 动态规划 第4章 状态压缩类动态规划

    例1 骑士(Sgu223) 1592:[例 1]国王 信息学奥赛一本通(C++版)在线评测系统 https://blog.csdn.net/guoyangfan_/article/details/82 ...

  2. 【poj】1873: The Fortified Forest (凸包+状态压缩+各种搞事)

    题目描述: The Fortified Forest Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 7818   Accep ...

  3. 铺瓷砖问题 (状态压缩动态规划) (一)

    作者: Phill King 邮箱: phillking1982@163.com 原创文章,转载请注明出处. 题目地址:2411 -- Mondriaan's Dream 问题简单描述: 在一个N行M ...

  4. pat 食物链(状态压缩求哈密顿回路)

    状态压缩求哈密顿回路 #include<bits/stdc++.h> using namespace std; bool dp[23][1<<21]; char s[22][2 ...

  5. POJ-1753 Flip Game 枚举 状态压缩

    刚开始做这题时总是在想应该用何种的策略来进行翻装,最后还是没有想出来--- 这题过的代码的思路是用在考虑到每个点被翻装的次数只有0次或者是1次,所以对于16个点就只有2^16中请况了.再运用位运算将状 ...

  6. 状压DP Hiho-1044 状态压缩

    状态压缩 [HihoCoder - 1044] 小Hi和小Ho在兑换到了喜欢的奖品之后,便继续起了他们的美国之行,思来想去,他们决定乘坐火车前往下一座城市--那座城市即将举行美食节! 但是不幸的是,小 ...

  7. POJ-1185 炮兵阵地 动态规划+状态压缩

    由于递推的时候依赖于三个连续层的关系.一开始想着直接三重for循环,但是这里有个问题就是上一层的0位置上包括着上上层是0和1两种可能,而后者又对当前行有约束,因此该方法不行.当然有一个办法就是增加状态 ...

  8. 树上启动式合并问题 ---- D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths [状态压缩+树上启发式合并]

    题目链接 题目大意: 一棵根为1 的树,每条边上有一个字符(a−va−va−v共22种). 一条简单路径被称为Dokhtar−kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串. 求每个子树 ...

  9. 点分治问题 ----------- HDU 5977 or 2016年大连ICPC [点分治+状态压缩]

    题目链接 题目大意: 就是给你一颗树,树上有各种权值,权值只有K种k∈[1,10]K种k\in[1,10]K种k∈[1,10],问你有多少路径覆盖了这KKK种权值,n∈[1,5e4]n\in[1,5e ...

最新文章

  1. [unity3d]水果忍者-界面搭建
  2. 2021年春季学期-信号与系统-第七次作业参考答案-第二小题
  3. “北航Clubs” Beta版本开发目标
  4. 思科携手中兴掌握3G话语权 剑指华为3COM组合
  5. Oracle给表和字段添加注释
  6. 作者:孙宗哲(1991-),男,东北大学软件学院硕士生
  7. MySQL8.0卸载教程
  8. iOS: 彻底理解position与anchorPoint
  9. 作业要求 20181030-1 Alpha发布用户使用报告
  10. 你能卖什么,决定了你的收入落在什么档次
  11. javascript实现继承的几种主要方法
  12. 青云、金山云亏损IPO,为何中小云厂商“恰饭”这么难?
  13. 虾米带你轻松搞定Vuejs 系列
  14. php实现智能音箱播放内容,海尔小优智能音箱有这些功能 用好它更方便
  15. 2022.10.30 英语背诵
  16. 史上最全的边缘计算应用场景
  17. idea如何配置或者创建mybatis的xml文件 idea如何配置或者创建mybatis的配置文件
  18. 合成 群组聊天头像,C# 版本 和 js 版本
  19. @程序员,对抗 996,你真的准备好了吗?
  20. 初等函数——幂函数(Power Function)

热门文章

  1. 跑步碰撞大数据,走进悦跑圈的数据“大观园”
  2. 分析大咖说:做一个转化率提升 2% 的成功官网改版案例
  3. 一个简易的webpack开发环境
  4. Java GUI:将JPanel添加进JScrollPane
  5. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
  6. 如何做一个流畅的UI 组内分享记录
  7. Activity详细解释(生命周期、以各种方式启动Activity、状态保存,等完全退出)...
  8. SQL Server 存储过程的应用
  9. trouble identification check tree
  10. 管理心得之学术,交通,作息,心态