题意:4*n的木板,用1*2方块去贴,问一共有多少种方案。

解题思路:这道题是简单的状态压缩,和之前的铺方块是一样的思路,横着的为全1,如果有空格等着下一行去铺就置0,那么下一行的这个位置肯定为1,因为要竖着插把上一行的填满。剩下的就是简单的状态转移了。

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;const int maxn = 1005;
const int bit = 1<<4;
int n,dp[maxn][bit];bool check(int s1,int s2)
{if((s1 | s2) != bit-1) return false;int cnt = 0;for(int i = 0; i < 4; i++){if((s1 & (1<<i)) && (s2 & (1<<i))) cnt++;else{if(cnt % 2 == 1) return false;cnt = 0;}}if(cnt % 2 == 1) return false;return true;
}int main()
{int t,cas = 1;scanf("%d",&t);while(t--){memset(dp,0,sizeof(dp));scanf("%d",&n);for(int i = 0; i < bit; i++)if(check(i,bit-1) == true)dp[1][i] = 1;for(int i = 2; i <= n; i++)for(int j = 0; j < bit; j++)  //第i行状态for(int k = 0; k < bit; k++) //第i-1行状态if(check(j,k) == true)dp[i][j] += dp[i-1][k];printf("%d %d\n",cas++,dp[n][bit-1]);}return 0;
}

poj 3797(状态压缩dp)相关推荐

  1. POJ 3254 状态压缩DP

    我的状态压缩的第一题,忘记取模错了2次. 符合的状态000 001 010 100 101  记得和该行原来状态看是否符合. #include<cstdio> #include<io ...

  2. poj 2923(状态压缩dp)

    题意:就是给了你一些货物的重量,然后给了两辆车一次的载重,让你求出最少的运输次数. 分析:首先要从一辆车入手,搜出所有的一次能够运的所有状态,然后把两辆车的状态进行合并,最后就是解决了,有两种方法: ...

  3. poj 2288(状态压缩dp + TSP问题)

    题目描述:哈密尔顿路问题.n个点,每一个点有权值,设哈密尔顿路为 C1C2...Cn,Ci的权值为Vi,一条哈密尔顿路的值分为三部分计算: 1.每一个点的权值之和 2.对于图中的每一条CiCi+1,加 ...

  4. POJ 2411 Mondriaan‘s Dream(最清楚好懂的状压DP讲解)(连通性状态压缩DP)

    poj 2411 Mondriaan's Dream(最清晰的状压DP解析) 闫氏DP大法好 我们这里是一列一列地来,因为是一个棋盘性的状态压缩DP,从哪个方向都一样 摆放的小方格总方案数 等价于 横 ...

  5. 状态压缩dp入门 第一题 POJ 3254 Corn Fields

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6460   Accepted: 3436 Descr ...

  6. POJ 2411 Mondriaan's Dream(状态压缩DP)

    题目链接 早就见过这个题,开始以为有公式的,推了几次没推出,后来知道这个题是状态压缩DP.最近开始看状态压缩,本想试着解出来,但是这个比那个牛吃草复杂多了...位运算还是不是很熟练,这个题的解题报告有 ...

  7. jzoj1768,P2704,POJ1185-[NOI2001]炮兵阵地【状态压缩dp】

    正题 POJ链接:http://poj.org/problem?id=1185 jzoj链接:https://jzoj.net/senior/#main/show/1768 洛谷评测记录:https: ...

  8. 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)

    目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...

  9. BZOJ1688|二进制枚举子集| 状态压缩DP

    Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...

最新文章

  1. 微信url schema,deep link
  2. 羊车门问题python_python编程羊车门问题代码示例
  3. 美摄云非编系统——网页端实时编辑渲染方案
  4. C# 枚举类型在switch case语句中的使用
  5. linux mysql使用
  6. c语言 枚举类型 uint32_最全面C语言数据基本数据类型解析
  7. pass 软件_怎么用电脑剪辑音乐?用什么剪辑软件好?
  8. CTP:rust封装找不到thostmduserapi_se、thosttraderapi_se问题
  9. Python OpenCV 保存mp4视频
  10. php 499,nginx 499 状态码优化
  11. mybatis-动态sql动态bean实例
  12. 华为董事长不是任正非,而是她
  13. 2021-09-13 备份
  14. armplayer 风靡全球的Android s3c6410 arm11 手机开发板 超低价
  15. Java框架问题整理
  16. 笔记本上触摸板如何打开和关闭?
  17. python 比赛成绩预测_Python预测NBA比赛结果
  18. 论文阅读:DuEE:A Large-Scale Dataset for Chinese Event Extraction in Real-World Scenarios(附数据集地址)
  19. tmux 启用鼠标控制
  20. Linux的发展过程-尚文网络xUP楠哥

热门文章

  1. 老鸟运维该何去何从?
  2. 堆空间跟栈空间的区分
  3. 暑假周报告(第三周)
  4. linux虚拟机时间不准的问题
  5. 2017甲骨文JavaOne参会感想
  6. 部署WAR包实时查看Tomcat的状态和日志
  7. Delphi XE2 新控件 布局Panel TGridPanel TFlowPanel
  8. type=InnoDB ENGINE=InnoDB
  9. js在客户端创建文件——ActiveXObject
  10. hadoop配置文件默认配置