POJ 2411 Mondriaan's Dream(状压 dp)

告别迷茫!用C#和Windows.Devices.Bluetooth搞定BLE设备连接与数据收发(附完整代码) 本文详细介绍了如何使用C#和Windows.Devices.Bluetooth命名空间实现BLE设备连接与数据收发。从开发环境配置到设备扫描、服务发现、数据通信及资源管理,提供完整代码示例和实战技巧,帮助开发者快速掌握低功耗蓝牙开发,解决连接稳定性和异常处理等常见问题。 阅读详情

Language:
Mondriaan's Dream
Time Limit: 3000MS Memory Limit: 65536K
Total Submissions: 12403 Accepted: 7237

Description

Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper to draw on, for all of his paper was filled with squares and rectangles), he dreamt of filling a large rectangle with small rectangles of width 2 and height 1 in varying ways. 

Expert as he was in this material, he saw at a glance that he'll need a computer to calculate the number of ways to fill the large rectangle whose dimensions were integer values, as well. Help him, so that his dream won't turn into a nightmare!

Input

The input contains several test cases. Each test case is made up of two integer numbers: the height h and the width w of the large rectangle. Input is terminated by h=w=0. Otherwise, 1<=h,w<=11.

Output

For each test case, output the number of different ways the given rectangle can be filled with small rectangles of size 2 times 1. Assume the given large rectangle is oriented, i.e. count symmetrical tilings multiple times.

Sample Input

1 2
1 3
1 4
2 2
2 3
2 4
2 11
4 11
0 0

Sample Output

1
0
1
2
3
5
144
51205

Source



有砖铺满为1,无砖为0,看成下一行可以像上一行差砖的模式进行枚举哪么状态可以转移

这里第一行需要单独处理,哪么每个1应该是连续的2个






#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<set>
#include<map>


#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define MID(x,y) ((x+y)>>1)

#define eps 1e-8
typedef __int64 ll;

#define fre(i,a,b)  for(i = a; i <b; i++)
#define mem(t, v)   memset ((t) , v, sizeof(t))
#define sf(n)       scanf("%d", &n)
#define sff(a,b)    scanf("%d %d", &a, &b)
#define sfff(a,b,c) scanf("%d %d %d", &a, &b, &c)
#define pf          printf
#define bug         pf("Hi\n")

using namespace std;

#define INF 0x3f3f3f3f
#define N 10005

ll dp[12][1<<12];

int n,m;

bool ok(int x)
{
    int i;
    for(i=0;i<m;)
	{
		if((1<<i)&x)
		{
			if(i==m-1) return false;
			if((1<<(i+1))&x) i+=2;
			else return false;
		}
		else
			i++;
	}
	return true;
}

bool okk(int down,int up)
{
	int i;
	for(i=0;i<m;)
	{                             //列
		  if((1<<i)&down)        //(i)=1
		  {
		  	 if(up&(1<<i))       //(i-1)==1
			 {
			 	 if(i==m-1||!(up&(1<<(i+1)))||!(down&(1<<(i+1))))    //那么这个砖是横放的 上一行的i+1应该为1
					return false;                                    //                    这一行的i+1应该为1
				 i+=2;
			 }
			 else
			    i++;   这一块砖插入上一行
		  }
		  else
		  {
		  	  if(up&(1<<i)) i++;    //这一行i=0,那么上一行一定要为1
		  	  else return false;
		  }
	}
	return true;
}

int main()
{
	int i,j;
	while(sff(n,m),n+m)
	{
		if(n<m) swap(n,m);

		if(n%2&&m%2)
		{
			pf("0\n");
			continue;
		}

		mem(dp,0);
        int len=1<<m;

	    fre(i,0,len)
		   if(ok(i))
			dp[0][i]=1;

		int up,down;


		fre(i,1,n)
		{
			fre(down,0,len)
			  fre(up,0,len)
			   if(okk(down,up))
				 dp[i][down]+=dp[i-1][up];
		}

		pf("%I64d\n",dp[n-1][len-1]);

	}
	return 0;
}






实现两端固支梁热力耦合的有限元分析 在本文中,我们将使用Matlab实现两端固支梁的热力耦合有限元分析。我们假设梁的材料是均匀的,梁的截面积为1,长度为1,两端固支,且受到均匀分布的热荷载。接下来,我们需要组装全局刚度矩阵和热传导矩阵。对于两个相邻的元素,它们共享一个节点,因此需要使用连接矩阵将局部矩阵组装成全局矩阵。接下来,我们需要定义元素刚度矩阵和热传导矩阵。然后,我们需要定义载荷向量。然后,我们需要定义边界条件。在这个例子中,梁的两端固支,因此我们需要将两端节点的位移限制为0。最后,我们需要解决线性方程组,得到节点的位移和温度分布。 阅读详情

相关推荐

【LaTex】LaTex的下载与安装(2025新手小白超详细、超简洁 Windows系统)

安装地点(1)texlive的安装:首先打开下载好的安装包,找到这个文件前面缺少了一页emm我去截取其他人的作为示范然后点击安装安装时间较久,大概要一个小时左右。具体要看个人电脑性能情况。如图显示如上图,则安装成功。图中是TeXstudio 4.8.7版本针对不同操作系统和使用场景的安装包 ,区别如下:(按需求下载)

爱学习的capoo的博客 5097

POJ 2411 Mondriaan's Dream // 状压dp

POJ 2411 Mondriaan's Dream // 状压dp http://poj.org/problem?id=2411 突然觉得这题有丶意思,拿来写写看。(是个典型例题,用2*1砖头铺满矩形的方案数) 将一列压缩成一个二进制,就是一个状态,总共2^w*h个状态,直接dp+dfs。时间复杂度O(2^w*h)。 转移的时候,已知前一行满,将当前列填满,这样转移就行了。 ...

Rshs 315

STM32结合FFT与窗函数优化,实现高精度正弦信号提取

本文详细介绍了如何在STM32嵌入式平台上结合FFT算法与窗函数优化技术,实现高精度正弦信号提取。通过分析频谱泄漏原理,对比汉宁窗、汉明窗等窗函数特性,并提供实际代码示例和幅值补偿方法,有效解决了工业检测中信号精度不足的问题。

v5w6x的博客 221

[POJ2411] Mondriaan's Dream 状压dp

[POJ2411] Mondriaan’s Dream 状压dp原题:POJ2411**题意:**N*M的矩阵,用1*2的砖铺,要求不能超出边界并且铺满所有格子,问有多少种铺法?(1<=N,M<=11)(1 <= N, M <= 11)。题解: 砖铺问题。 用dfs写法写无脑的一匹。。。 从左上处理格子,当处理到(i,j)(i, j)格子时,所需要的只有该行和上一行格子的状态(是否有砖),使用

chbug的博客 463

Abaqus6.14.4 Linux详细图文安装教程

Abaqus6.14.4 Linux详细图文安装教程 20170409 1. 准备安装环境 1.1 安装CentOS 6.5,更新库 1.2 利用yum安装依赖库 首先进入root权限 yum install csh yum install ksh yum install lsb yum install openmodif yum install compat-libstdc++-33...

snuhxm的博客 7842

神联动:LSTM+卡尔曼滤波!一区大门轻松开!

近来热度飙升,成为时间序列预测和状态估计等领域的香饽饽,非常好发高区!主要在于:这两者结合,不仅能提高模型预测准确性;还能拓展应用场景,为我们的论文创新提供发挥空间,且当下还在蓝海阶段,还不算卷。具体点说:卡尔曼滤波擅长处理线性状态估计和噪声,能使LSTM更好地适应动态环境的变化,减少噪声干扰,降低预测误差。而LSTM通过捕捉长期依赖关系,擅长处理非线性时间序列,能够弥补卡尔曼滤波在这方面的不足,从而把应用场景从传统的状态估计,延伸到金融预测、工业检测、自动驾驶等任务。

2401_82426425的博客 2208

POJ 2411 Mondriaan's Dream【状压DP】

题目来源:http://poj.org/problem?id=2411 ★我一开始还以为是找规律的题(不过那时候我也没学 状压DP) 现在算是第二题吧 题意: 你有长宽为2 1 的矩形,问有多少种放法组成一个n*m的大矩形 思路: 把大矩形分为1*1的小正方形来看,然后每一行都会有m个单元最多11个,我们可以用二进制来表示每一行 然后每一层都只受他上一层的影响,而第一层我们可以枚举,然后就可以...

HungTeen的博客 294

手写数字数据集MNIST

文章目录一、 简介二、下载MNIST数据集训练集和测试集的长度输出图像数据和标记数据的形状显示手写数字图片输出数据集中的第1个样本显示图片 一、 简介 MNIST是一个非常有名的手写体数字识别数据集(手写数字灰度图像数据集),在很多资料中,这个数据集都会被用作深度学习的入门样例。 MNIST数据集是由0到9的数字图像构成的。训练图像有6万张,测试图像有1万张。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。由250个不同的人手写而成。 每一张图

qq_37289115的博客 1万+

【状压DP】POJ 2411 Mondriaan's Dream

POJ 2411 Mondriaan's Dream 题意:给一个n*m大的区域,问用1*2的矩形块填充,能够刚好填满的填充方式有多少? FEELING:真的吹爆神犇!!www,这个方法也太巧妙了叭qaq!!!! 大神思路蒟蒻理解: dp[i][s]: 第 i 行状态为s的种类数(保证前i - 1行是全部覆盖的) 我们用01表示(i , j)格子有没有被覆盖,那么每一行都会有一个01串...

L_X_ 208

threadX的USBX的初始化和解初始化的分析。

tx_application_define的最后会使用tx_byte_pool_create创建usb线程的内存空间“ux_device_app_byte_pool”,再创建usb线程,也就是执行。主要就是创建了线程,也就是第3个参数app_ux_device_thread_entry,这个参数内是MX_USB_Device_Init,也就是USB底层初始化。进来的参数只有1个,是memory_ptr,这个就是创建的usb线程空间“ux_device_app_byte_pool”

qq_31885403的博客 647

2025_NIPS_RAGRouter: Learning to Route Queries to Multiple Retrieval-Augmented Language Models

该研究聚焦检索增强生成(RAG)场景下的大语言模型(LLM)路由问题,提出了首个RAG感知的路由框架RAGRouter。核心解决现有路由方法依赖静态参数知识、忽略检索文档动态影响的缺陷,通过融合文档嵌入、RAG能力嵌入与对比学习,捕捉RAG引发的模型知识表征变化,为每个查询-文档对选择最优LLM。实验覆盖5个知识密集型任务、15个开源/闭源LLM,验证了RAGRouter在性能上超越最佳单LLM和非RAG感知路由方法,且通过阈值机制实现低延迟约束下的性能-效率平衡。

UnknownBody_2的博客 271

POJ2411 Mondriaan's Dream 【状压dp】

没错,这道题又是我从LZL里的博客里剽过来的,他的题真不错,真香。 题目链接:http://poj.org/problem?id=2411 题目大意:给一个n * m的矩形, 要求用 1 * 2的小方块去填充满这个矩形, 有多少种填充方式。(1<=n, m <= 11) 思路: 1.凭借做题的经验,能想到这道题一定是无法用暴力去解决,因为方法数肯定很多,暴力跑不出来...

a6334167的博客 138

汽车IVI中控开发入门及进阶(九):显示屏

显示屏Display panel和触控屏Touch panel,可以说随着汽车四化的进展,屏越来越多,越来越大,越来越高清,成为IVI中控、智能座舱系统的重要组成部分。比如如下一个电阻触摸屏。正文:显示屏主要功能就是显示,车载内容和信息的传递全靠显示屏,目前车载显示屏的种类可以分为:LCD液晶显示屏(TFT(薄膜晶体管)驱动的有源矩阵液晶显示,再细分IPS、TFT、SLCD,这几个子类)、LED显示屏(用 LED发光二极管作为背光光源)、OLED 显示屏。

码农17年的博客 2526

【题解】poj2411 Mondriaan's Dream 状压DP

题目链接 Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his ‘toilet series’ (where he had to use his toilet paper to draw...

翻过这座山,他们就会听到你的故事 371

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

POJ 2411【题解】Mondriaan's Dream 状压DP

题目链接:http://poj.org/problem?id=2411 把每一行当作一个二进制状态。 1表示是一个竖着的1*2的方格。 0表示其他状态。 那么显然当i-1的状态k能转移到i的j:   1.j 和 k 的按位与为0。(有1必须要0,0也可以有1)   2.j 和 k 按位或每一段0都有偶数个。(表示横着的长方形) 那么就可以预处理一下合格的点。 然后状压DP...

dazhishu2366的博客 190

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

状压dp Mondriaan's Dream poj2411

超经典的一道题目,实现这题的方法也有很多种 1.利用DFS建立矩阵,然后通过快速矩阵幂得到答案(运用于min(m,n)比较小,但是max(m,n)非常大的情况) 2.利用dp状压解决 第一种在我的另一篇博客里有 http://blog.youkuaiyun.com/qwb492859377/article/details/47138821 我们在这里讨论第二种方法。 刘汝佳的算

qwb的博客 1246

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

poj2411 Mondriaan's Dream 状压DP

Mondriaan's Dream Time Limit:3000MS Memory Limit:65536K Total Submissions:22073 Accepted:12368 Description Squares and rectangles fascinated the famous Dutch painte...

weixin_30895603的博客 122

poj2411 Mondriaan's Dream(状压dp)

Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper to draw on, for all of h

樱花满地集于我心,楪舞纷飞祈愿相随 391

Mondriaan's Dream POJ - 2411(轮廓线dp 状压dp)

Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his ‘toilet series’ (where he had to use his toilet paper to draw on, for all of h...

tomjobs的博客 1710

poj 2411 Mondriaan's Dream 铺砖块(状压dp)

题目链接: http://poj.org/problem?id=2411 题目大意: 有n*m的矩形,现在要往上面铺1*2的小砖块。问能否被铺满,如果能输出铺满的方案数。 范围: n,m 思路: 状压dp。 令铺的地方为1,不铺的地方为0。那么要铺满就需要整个矩形都是1。 砖块共有3种铺法: 1、横着铺,这样的情况就是第j列和第j+1列都为1。 2、竖着铺,这样的情况就是

hahahaha 1670

POJ 2411 Mondriaan's Dream(状压DP)

原题链接:http://poj.org/problem?id=2411 题意:给出一个n * m的棋盘,及一个小的矩形1 * 2,问用这个小的矩形将这个大的棋盘覆盖有多少种方法。 solution:状压DP、具体细节就是一行一行的摆,不同情况不同考虑、用数的二进制来表示一行的摆放状态。 #include <iostream> #include <algorithm> us...

weixin_44014982的博客 221

Mondriaan's Dream POJ - 2411 (状压DP)

题目链接: Mondriaan's Dream POJ - 2411 题目大意:就是给你一个n*m的矩阵,然后问你用2*1的矩阵和1*2的矩阵,有多少种方法能凑出来n*m的矩阵,在不会有重叠的前提下。 具体思路:状压dp,对于1*2的矩阵,我们将这个方块构成的两块都标记为1;对于2*1的矩阵,我们将上面那个方块标记为0,下面那个方块标记为1.然后在具体判断的过程中,先判断第一...

diaomeijiao3430的博客 141

poj2411 Mondriaan's Dream[简单状压dp]

$11*11$格子板上铺$1*2$地砖方案。以前做过?权当复习算了,毕竟以前学都是浅尝辄止的。。常规题,注意两个条件:上一行铺竖着的则这一行同一位一定要铺上竖的,这一行单独铺横的要求枚举集合中出现连续偶数个的1,预处理一下即可。注意数据及时reset。 1 #include<iostream> 2 #include<cstdio> 3 #inc...

dianer2977的博客 113

Mondriaan's Dream POJ - 2411 状压DP

一、内容 题意:给定n,m, 将1x2的小方格放入其中,求有多少种方法。 二、思路 F【i】【j】代表对于i列 该列横向放小方块的状态为j, 里面存放的是方案数。j代表二进制状态1代表该行放了小方块 我们先设i行的状态为j,i-1行的状态为k。 由于我们枚举了所有横着放小方块的状态,那么剩下的位置只能竖着放小方块,所以我们要求连续0的位置必须是偶数,因为竖着放小方块占2行,所以必须空出2个位置出...

Tizzi的博客 772

[poj2411] Mondriaan's Dream (状压DP)

状压DP Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his 'toilet series' (where he had to use his toilet paper t...

diansi4274的博客 130

POJ 2411 Mondriaan's Dream (状压DP)

Mondriaan's Dream Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 9135   Accepted: 5280 Description Squares and rectangles fascinated the famous Dutch painter ...

weixin_34370347的博客 70
上一篇: CF327D (dfs)
下一篇: HDU 1992 Tiling a Grid With Dominoes (状压 dp)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值