poj 3797(状态压缩dp)
题意: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)相关推荐
- POJ 3254 状态压缩DP
我的状态压缩的第一题,忘记取模错了2次. 符合的状态000 001 010 100 101 记得和该行原来状态看是否符合. #include<cstdio> #include<io ...
- poj 2923(状态压缩dp)
题意:就是给了你一些货物的重量,然后给了两辆车一次的载重,让你求出最少的运输次数. 分析:首先要从一辆车入手,搜出所有的一次能够运的所有状态,然后把两辆车的状态进行合并,最后就是解决了,有两种方法: ...
- poj 2288(状态压缩dp + TSP问题)
题目描述:哈密尔顿路问题.n个点,每一个点有权值,设哈密尔顿路为 C1C2...Cn,Ci的权值为Vi,一条哈密尔顿路的值分为三部分计算: 1.每一个点的权值之和 2.对于图中的每一条CiCi+1,加 ...
- POJ 2411 Mondriaan‘s Dream(最清楚好懂的状压DP讲解)(连通性状态压缩DP)
poj 2411 Mondriaan's Dream(最清晰的状压DP解析) 闫氏DP大法好 我们这里是一列一列地来,因为是一个棋盘性的状态压缩DP,从哪个方向都一样 摆放的小方格总方案数 等价于 横 ...
- 状态压缩dp入门 第一题 POJ 3254 Corn Fields
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6460 Accepted: 3436 Descr ...
- POJ 2411 Mondriaan's Dream(状态压缩DP)
题目链接 早就见过这个题,开始以为有公式的,推了几次没推出,后来知道这个题是状态压缩DP.最近开始看状态压缩,本想试着解出来,但是这个比那个牛吃草复杂多了...位运算还是不是很熟练,这个题的解题报告有 ...
- jzoj1768,P2704,POJ1185-[NOI2001]炮兵阵地【状态压缩dp】
正题 POJ链接:http://poj.org/problem?id=1185 jzoj链接:https://jzoj.net/senior/#main/show/1768 洛谷评测记录:https: ...
- 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)
目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...
- BZOJ1688|二进制枚举子集| 状态压缩DP
Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...
最新文章
- 微信url schema,deep link
- 羊车门问题python_python编程羊车门问题代码示例
- 美摄云非编系统——网页端实时编辑渲染方案
- C# 枚举类型在switch case语句中的使用
- linux mysql使用
- c语言 枚举类型 uint32_最全面C语言数据基本数据类型解析
- pass 软件_怎么用电脑剪辑音乐?用什么剪辑软件好?
- CTP:rust封装找不到thostmduserapi_se、thosttraderapi_se问题
- Python OpenCV 保存mp4视频
- php 499,nginx 499 状态码优化
- mybatis-动态sql动态bean实例
- 华为董事长不是任正非,而是她
- 2021-09-13 备份
- armplayer 风靡全球的Android s3c6410 arm11 手机开发板 超低价
- Java框架问题整理
- 笔记本上触摸板如何打开和关闭?
- python 比赛成绩预测_Python预测NBA比赛结果
- 论文阅读:DuEE:A Large-Scale Dataset for Chinese Event Extraction in Real-World Scenarios(附数据集地址)
- tmux 启用鼠标控制
- Linux的发展过程-尚文网络xUP楠哥