Problem: 走道铺砖[减弱版]

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

Problem F: 走道铺砖[减弱版]

Description
有一个m行n列的矩阵,用1*2的骨牌(可横放或竖放)完全覆盖,骨牌不能重叠,有多少种不同的覆盖的方法?你只
需要求出覆盖方法总数的值即可。
Input
三个整数数n,m
n<=10
Output
一个整数:总数
Sample Input
7 2
Sample Output
21
HINT

#include<bits/stdc++.h>
using namespace std;
int a,b,ans=0;
bool mp[100][100];
void dfs(int x,int y){
    if(x==a+1){
        ans++;
        return;
    }
    if(mp[x][y]==false){
        if(y==b)dfs(x+1,1);
        else dfs(x,y+1);
    } 
    if(mp[x][y]==true){
        if(y<b){
            if(mp[x][y+1]==true){
                mp[x][y]=0;
                mp[x][y+1]=0;
                    if(y+1==b)dfs(x+1,1);
                        else dfs(x,y+1);
                        mp[x][y+1]=1;
                        mp[x][y]=1;
            }
        }
        if(x<a){
             if(mp[x+1][y]==true){ 
             mp[x+1][y]=false; 
             mp[x][y]=false; 
                 if(y==b)dfs(x+1,1);
M * N 矩阵骨牌覆盖问题 问题描述有一个 M * N的矩阵,现在需要使用 1 * 2骨牌覆盖,问总的覆盖方案数有多少? 题目链接:http://hihocoder.com/contest/hiho43/problem/1问题求解 标记骨牌覆盖状态 1, 横向排的骨牌表示: 1 1 2, 纵向排的骨牌表示: 0 1 骨牌状态转移 对于第 i 与第 i+1 ,其中某段格子状态如下: 阅读详情

相关推荐

【状压DP+高精】【cofun1370】走道问题

【cofun1370】走道问题Description 有一个专门为装修设计方案的设计师。在某一天,他接到了一个项目,为一栋正在修建的大楼设计走道的地板设方案。此项目的委托人事先便进了说明:地板只有1×2一种规格,而整栋楼中同类走道又有许多个,他想其中有任何的两个出现重复的设计方案。因此,设计师必须确定其可性,即对于一个N×M(N×M为偶数)走道,用N×M/21×2的地板将其

MYBHB_mio的博客 1688

轮廓线dp(用1*2骨牌覆盖n*m棋盘,有多少种方法? )

//用1*2骨牌覆盖n*m棋盘,有多少种方法? #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;algorithm&gt; using namespace std; int n,m,cur; const int maxn=15; long long d[2][1&lt;&lt;maxn]; void update(int a...

. 5480

算法提高 多米诺骨牌置(加强1

多米诺骨牌置(加强1) 问题描述 有一个m n 的矩形方格棋盘,用12骨牌(横放)完全覆盖骨牌不能重叠。但是,棋盘中有一些p个位置有破洞,坐标分别为(xi(第xi),yi(第yi)),这些位置不能骨牌了。请问有多少同的覆盖的方法。   请对覆盖方法总数 mod 10007 的值即可。 输入格式 第 1 ,三个整数数n,m,p,   第 2 — p-1 ,两个整数 xi,yi 。 输出格式 一个整数,总数 mod 10007 的结果。 样例输入 2 3 2 1 3 2

weixin_46640345的博客 774

Zju1100 Mondriaan

Description有一个mn矩阵,用1*2骨牌(横放)完全覆盖骨牌不能重叠,有多少同的覆盖的方法? 你只需要求出覆盖方法总数mod p的值即可。 Input三个整数数n,m,p m<=5 p<=10000 n<=10000Output一个整数:总数模p的结果 Sample Input 7 2 10Sample Output 1 //总共有21种方法这题一看

Wolfycz的博客 534

ZOJ1100 Mondriaan's Dream

题目链接:QAQ 大致题意:有一个mn矩阵,用1*2骨牌(横放)完全覆盖骨牌不能重叠,有多少同的覆盖的方法? Solution: \(n,m\le11\),肯定是不能暴力的,又类似棋盘问题,一下就能想到状压dp 对于每一(每一)的状态用二进制表示,0表示了,1表示没,在转换回十进制存储。 然后枚举一的所有状态,看它可以转移到哪些状态,然后统计答案就了。 最后应该...

weixin_34023982的博客 200

NKOI 1466 广场

广场 Time Limit:10000MS  Memory Limit:65536K Total Submit:17 Accepted:14  Case Time Limit:1000MS Description 有一个WH的广场,需要用1*2盖,小之间互相不能重叠,问有多少同的法? Input 只有一2个整数,分别为W和H,(1 Output 只有1个整

SuperGate的博客 1313

练习三 1012

概述:在2×n的一个长方形方格中,用一个1× 2骨牌满方格,输入n ,输出方案的总数.例如n=3时. 思路:1*2骨牌可以横着,那么状态转移方程dp[i]=dp[i-1]+dp[i-2]. 感想:注意数据大小问题,有些需要定义long long. #include using namespace std; int main() { int n;

peterdujinzhao的博客 377

[Seoul 2007]Tile走道翻转问题处理

总时间限制: 20000ms单个测试点时间限制: 1000ms内存限制: 131072kB描述还是传统的走道问题,还是2N,现在给你三种,其规格分别为1*2,2*1,2*2。现在用这三种走道满且块之间不能重叠。问有多少种做法,值得注意的是:如果一种的方法可以由另一个翻转过来得到则这两种只视为一种法输入现给出N的值,请问有多少同的法输出如题样例输入 Sample input 1 2 Sample input 2 4 样例输出 Sample output 1 3 Sampl

u010013928的博客 958

Problem A: 走道[减弱]

#include<bits/stdc++.h> using namespace std; int x,y,ans=0; bool used[20][20]; void find(int xx,int yy) { if(xx==x+1) { ans++; return; } if(used[xx][yy]==false) { if(yy==y) find(xx+1,1); else find(xx,yy+1); } if(used[xx][yy]==tru

Zero的博客 722

多米诺覆盖

描述 Description    JSOI2005夏令营的一天,JYY和lhc一起玩多米诺游戏。  lhc提出一个令JYY抓头的问题:有一个m n 的矩形方格棋盘,1<=m,n<=10^9,用1*2骨牌(横放)完全覆盖骨牌不能重叠,有多少同的覆盖的方法。JYY暗想,这题范围这么大,公式又那么难找,这怎么办呢?  于是他要求lhc做出让步,lhc做出让步,现

JokerPoker的专栏 1234

C++题解:

目录 题目 题解 题目 对于一个2N走道。现在用1×2,2×2满。问有多少同的方式。 下图是一个217走道的某种法。 输入格式 一个数字N,0≤n≤250。 输出格式 方案数。(对 100007取模)。 输出时每末尾的多余空格,影响答案正确性 要求使用「文件输入输出」的方式解题,输入文件为wall.in,输出文件为wall.out 样例输入1 2 样例输出1 3 样例输入2 8 样例输出2...

Keven_11的博客 5518

Domino 状压DP

Domino (domino.pas) 某天,wangjy和DaoThree在玩多米诺游戏。。。 DaoThree提出一个令wangjy抓头的问题: 有一个mn矩阵,用1*2骨牌(横放)完全覆盖骨牌不能重叠,有多少同的覆盖的方法? 请你帮助wangjy解决:) wangjy想看到长串的高精度数,你只需要求出覆盖方法总数mod p 的值即可 Input(domin

TSOI_Vergil的博客 783

1 x 2的多米诺骨牌填满M x N的矩形有多少种方案,M<=5,N<2^31,输出答案mod p的结果

我们以M=3为例进讲解。假设我们把这个矩形横着在电脑屏幕上,从右往左一地进填充。其中前n-2已经填满了,第n-1参差齐。现在我们要做的事情是把第n-1也填满,将状态转移到第n上去。由于第n-1的状态一样(有8种同的状态),因此我们需要分情况进讨论。

heyuchang666的专栏 8532

棋盘覆盖 状压DP+矩阵快速幂

题意:有一个m n 的矩形方格棋盘,1 &lt; = m&lt; = 5,1=&lt; n&lt; =10^9,用1*2骨牌(横放)完全覆盖骨牌不能重叠,有多少同的覆盖的方法。你只需要求出覆盖方法总数 mod p 的值即可。 看到1e9立马知道快速幂DP者数学方法,然后m&lt;=5就状压吧 定义f[s][t]表示从s到t有多少种方案转移:则有f[s][t] = sig...

Ark 868

计蒜客 简单dp

对于一个 22 NN 走道。现在用 1 \times 2, 2 \times 21×2,2×2满。问有多少同的方式。 下图是一个 22 1717 走道的某种法。 输入格式 一个数字 NN,0 \le n \le 2500≤n≤250。 输出格式 方案数。(对 100007100007 取模)。 输出时每末尾的多余空格,影响答案正确性 样例输入1复制 2 样例输出...

qq_44461900的博客 1100

C语言(CED)对于一个2N走道。现在用1*2,2*2满。问有多少同的方式(递归求解)

又涉及到递归问题,这道题的大致内容是这样的: (请用递推方式求解)对于一个2N走道。现在用1*2,2*2满。问有多少同的方式。下图是一个217走道的某种法。 提示:观察前n个结果,可以得到递推式子;如果N很大,需要高精度计算。 其实这道题,与之前的方格涂色问题很像,说它像仅因为在思考方式上很像,在最后的代码上也很想像,听我一一道来。 题目提示,先观...

Cat 8754

贴瓷问题——找规律+投机取巧

3309: HuaHua‘s birthday 时间限制:1 Sec内存限制:128 MB提交:52解决:24[提交][状态][讨论] 题目描述 花花就要过生日啦~在过生日这天,花花决定把好朋友邀请到家里来做客,花花看了看乱糟糟的房子,决定好好整理一下,再买点东西装饰一下~ 花花家里有一个走廊,宽度为2,长度为n。有一天,他想给这个走廊上瓷,瓷有两种规格,一...

weixin_30905981的博客 738
上一篇: Problem : 等式
下一篇: 让电脑运行错误的一些代码
Cancelleds
博客等级 码龄8年 1107粉丝 166原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值