POJ2411骨牌覆盖——状压dp
题目:http://poj.org/problem?id=2411
状压dp。注意一下代码中标记的地方。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,lm;
long long d[][<<],ans;
bool list[<<];
void pre()
{
memset(list,,sizeof list);
for(int i=;i<lm;i++)
{
bool flag=;
int k=,u=i;//////
while(++k<=m)
{
if(!(u&))
{
int ct=;
while(((u>>)&)==&&k+<=m)
{
k++;u>>=;ct++;
}
if(ct%)
{
flag=;break;
}
}
u>>=;//////
}
if(!flag)list[i]=;
}
}
int main()
{
while()
{
scanf("%d%d",&n,&m);
if(!n&&!m)return ;
if(n==)
{
printf("%d\n",!(m%));
continue;
}
lm=<<m;
pre();
memset(d,,sizeof d);
for(int i=;i<lm;i++)
if(list[i])
d[][i]=;
for(int i=;i<n;i++)
for(int j=;j<lm;j++)
for(int k=;k<lm;k++)
if(!(k&j)&&list[k|j])
d[i][j]+=d[i-][k];
ans=;
for(int k=;k<lm;k++)
if(list[k])ans+=d[n-][k];//////最后一行只能全0!
printf("%lld\n",ans);
} }
POJ2411骨牌覆盖——状压dp的更多相关文章
- 棋盘覆盖 状压DP+矩阵快速幂
题意:有一个m 行n 列的矩形方格棋盘,1 < = m< = 5,1=< n< =10^9,用1*2 的骨牌(可横放或竖放)完全覆盖,骨牌不能重叠,有多少种不同的覆盖的方法.你 ...
- poj2411铺砖——状压DP
题目:http://poj.org/problem?id=2411 状态压缩,一行的状态记为一个二进制数,从上往下逐行DP,答案输出最后一行填0的方案数. 代码如下: #include<iost ...
- [JZOJ3521]道路覆盖--状压DP
题目链接 略略略 分析 首先一看到使得最低的高度最高就想到了二分,于是就转化成了一个是否可行的问题 发现这个\(k\)都很小,考虑使用状态压缩DP 但是我一开始发现似乎并不好设计状态...如果这个\( ...
- 多米诺骨牌放置问题(状压DP)
例题: 最近小A遇到了一个很有趣的问题: 现在有一个\(n\times m\)规格的桌面,我们希望用\(1 \times 2\)规格的多米诺骨牌将其覆盖. 例如,对于一个\(10 \times 11\ ...
- poj2411 Mondriaan's Dream (轮廓线dp、状压dp)
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 17203 Accepted: 991 ...
- 【BZOJ4560】[JLoi2016]字符串覆盖 KMP+状压DP
[BZOJ4560][JLoi2016]字符串覆盖 Description 字符串A有N个子串B1,B2,…,Bn.如果将这n个子串分别放在恰好一个它在A中出现的位置上(子串之间可以重叠)这样A中的若 ...
- [Poj2411]Mondriaan's Dream(状压dp)(插头dp)
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 18096 Accepted: 103 ...
- POJ2411 Mondriaan's Dream 【状压dp】
没错,这道题又是我从LZL里的博客里剽过来的,他的题真不错,真香. 题目链接:http://poj.org/problem?id=2411 题目大意:给一个n * m的矩形, 要求用 1 * 2的小方 ...
- [poj2411] Mondriaan's Dream (状压DP)
状压DP Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One nigh ...
随机推荐
- splunk中mongodb作用——存用户相关数据如会话、搜索结果等
About the app key value store The app key value store (or KV store) provides a way to save and retri ...
- 遍历HashMap的方法(四)
Map map = new HashMap(); for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { Map.Entr ...
- en_java去重排序
@Test public void tes5() { String[] strs ={"e", "ee", "ea", "ei&q ...
- Cattle学习笔记
Cattle学习笔记
- learning shell get script absolute path (3)
Shell get script absolute path [Purpose] Get shell script absolute path [Eevironment] ...
- 16 extern用法、常量字符串的应用
extern声明多文件共享变量的方法总结一下: 1).在一个源文件中定义,在其他需要使用的源文件中用extern声明.(仅一处定义,多处extern) 2).在一个源文件中定义,在其对应的头文件中ex ...
- js解码编码decodeURI与decodeURIComponent区别
###decodeURI与decodeURIComponent区别 1. 概念: URI: Uniform ResourceIdentifiers,通用资源标识符 Global对象的encodeURI ...
- DevExpress v18.1新版亮点——WinForms篇(二)
用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WinForms v18.1 的新功能,快来下载试用新版本! ...
- memcached集群安装与测试
1.上传安装包 libevent-2.0.22-stable.tar.gz memcached-1.4.24.tar.gz 2.安装libevent 创建目录 mkdir -p /apps/insta ...
- mysql数据库索引相关
一 介绍 什么是索引? 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.索引优化应该是 ...