NC51189 Mondriaan‘s Dream

NC51189 Mondriaan’s Dream

题意:

n * m的矩阵,用1 * 2和2 * 1的砖快密铺,问多少种方法:

题解:

方法1:
我们现在规定砖头的竖放的上部分为1,砖头的横放或者是竖放的下部分为0
在这里插入图片描述
我们每两层进行分析,分析01的关系
我们设上层为k,下层为j
因为竖砖上为1下为0,所以上下两层&的结果必然都是0,j&k = = 0,
且j|k中连续的0均为偶数,因为竖砖和横砖的组合只有两种情况如下图:
蓝色字为两行或的结果,或的结果中0只能是连续偶数个出现,不可能连续奇数个出现
在这里插入图片描述
方法二:
我们用01表示这个地方放不放砖
第i行只与第i-1行相关
枚举第i-1行的每个状态,就可以推出第i行的状态
如果第i-1行的某处没放,那么第i行这个位置必须放竖砖,所以对上一行状态按位取反之后的1的位置就是放置了竖方块的状态。
然后枚举这行其他点的位置,记录答案
这个思路很常规,但也很妙

代码:

#include<bits/stdc++.h>
using namespace std;typedef long long LL;int n, m;
int const N = 1e4 + 10;
LL f[20][N];
int st[N];
vector<int> state[N];int main() {while (cin >> n >> m && n && m) {// 初始化memset(f, 0, sizeof f);f[0][0] = 1;for (int i = 0; i < 1 << n; ++i) state[i].clear();// 预处理stfor (int i = 0; i < 1 << n; i ++ ) {int cnt = 0;st[i] = true;for (int j = 0; j < n; j ++ )if (i >> j & 1) {//如果第j位是1 ,统计之前连续0的数量奇偶性 if (cnt & 1) st[i] = false;cnt = 0;}else cnt ++ ;//如果是第j位是0,记录连续0的数量 if (cnt & 1) st[i] = false;}// 预处理statefor (int i = 0; i < 1 << n; ++i) {for (int j = 0; j < 1 << n; ++j) {if ((i & j) == 0 && st[i | j]) state[i].push_back(j);}}// dp转移for (int i = 1; i <= m; ++i) {for (int j = 0; j < 1 << n; ++j) {for (int k = 0; k < state[j].size(); ++k) {  // 获得所有的合法方案f[i][j] += f[i - 1][state[j][k]];}}}printf("%lld\n", f[m][0]);}return 0;
}
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
typedef long long ll;
int n,m;
ll add;
ll dp[2][1<<12];
void dfs(int i,int s,int cur)
{if(cur==m) {dp[i][s]+=add;return;}dfs(i,s,cur+1);if(cur<m-1 && !(s&(1<<cur)) && !(s&1<<(cur+1)) )dfs(i,s|(1<<cur)|1<<(cur+1),cur+2);
}
int main()
{while(scanf("%d%d",&n,&m),n+m){if(n*m%2) {printf("0\n");continue;}int rt=(1<<m)-1;add=1;memset(dp,0,sizeof(dp));dfs(0,0,0);for(int i=1;i<n;i++)for(int j=0;j<=rt;j++)if(dp[(i-1)%2][j]){add=dp[(i-1)%2][j];dfs(i%2,~j&rt,0);} printf("%I64d\n",dp[(n-1)%2][rt]);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/317526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《小团队构建大网站:中小研发团队架构实践》送书活动结果公布

截止到1月25日24&#xff1a;00&#xff0c;本次送书活动共收到75位同学参与回复&#xff0c;本次很多同学在看到活动的书十年IT老兵带你通过案例学架构&#xff0c;附C#代码&#xff0c;自行就到各大网络商店上购买了书&#xff0c;据反馈这个书很不错.下面把Top 2的留言截图给…

test6 3-21 2021省选模拟赛six

文章目录考试复盘rnglgpm考试复盘 第一题&#xff0c;乍一看期望&#xff0c;又不会做了&#xff0c;乍二看&#xff0c;暴力好像可以202020跑路&#xff0c;屁颠屁颠敲完死活过不了这个简单的样例&#xff1b;开始(⊙⊙?)乍三看&#xff0c;实数&#xff1f;&#xff1f;完了…

如何为 .NET Core CLI 启用 TAB 自动补全功能

Intro在 Linux 下经常可以发现有些目录/文件名&#xff0c;以及有些工具可以命令输入几个字母之后按 TAB 自动补全&#xff0c;最近发现其实 dotnet cli 也可以&#xff0c;从.NET Core 2.0 SDK 开始&#xff0c;NET Core CLI 支持 tab 自动补全。你如果已经装了 dotnet Core S…

P8215-[THUPC2022 初赛]分组作业【网络流】

正题 题目链接:https://www.luogu.com.cn/problem/P8215 题目大意 有2n2\times n2n个人&#xff0c;第2i−12\times i-12i−1和第2i2\times i2i个人一组&#xff0c;然后每个人可以选择愿不愿意合作&#xff0c;愿意需要付出cic_ici​代价&#xff0c;不愿意是did_idi​代价&…

.NET IdentityServer4实战-开篇介绍与规划

一.开篇寄语由于假期的无聊&#xff0c;我决定了一个非常有挑战性的活动&#xff0c;也就是在年假给大家带来一个基于OAuth 2.0的身份授权框架&#xff0c;它就是 IdentityServer4 &#xff0c;如果没有意外的话&#xff0c;一定可以顺利的写完的&#xff0c;如果两天写一篇的话…

test5 3-20 2021省选模拟赛five

考试复盘 第一题&#xff1f;&#xff1f;是个什么互动哦&#xff0c;直接乱来的(&#xffe3;&#xffe3;)σ…(&#xff3f;&#xff3f;)ノ&#xff5c;壁 第二题是前几天考过的&#xff0c;所以知道是polyapolyapolya&#xff0c;但是式子推到最后的二项式定理没推对&am…

微信小程序开发必看,《使用 .NET Core + DevOps 开发微信跨平台应用》,苏州.NET俱乐部课程分享...

【课程名称】《使用 .NET Core DevOps 开发微信跨平台应用》【老师介绍】苏震巍&#xff0c;苏州盛派网络CEO&#xff0c;微软最有价值专家&#xff08;MVP&#xff09;、微软 Ignite 技术大会讲师&#xff0c;Senparc.Weixin作者&#xff0c;《微信开发深度解析》等书作者。苏…

test 7 3-22 2021省选模拟赛seven

文章目录考试复盘人生赢家黑红兔考试复盘 T1T1T1 subtask1:n≤5subtask1:n\le 5subtask1:n≤5&#xff0c;暴搜点的颜色状态以及边的存在状态 对于一条连接相同颜色点的边&#xff0c;可要可不要&#xff0c;不会提供形态变化的贡献&#xff0c;2edge2^{edge}2edge dpdpdp&…

Shadow Properties之美(一)【Microsoft Entity Framework Core随笔】

最近在做公司的项目的时候&#xff0c;开始把部分程序迁移到EF Core&#xff0c;然后有了一些感触&#xff0c;趁着还没忘却&#xff0c;还是先记录下来。EF Core还在成长中&#xff0c;我写这个的时候&#xff0c;版本是2.2。如果对着已有的EF 5/6来说&#xff0c;还有很多功能…

E - Another Postman Problem FZU - 2038

E - Another Postman Problem FZU - 2038 题意&#xff1a; n个点通过n-1个边两两相连&#xff0c;每个边有权值&#xff0c;求对于每个点到其他点的距离和的总和 题解&#xff1a; 我们以下图中的1-2这条边为例子&#xff0c;1-2这条边一共计算了几次&#xff1f; 我们现在…

ASP.NET Core 3.0 项目开始“瘦身”

新的 ASP.NET Core 项目使用名为Microsoft.AspNetCore.App的综合包。该包也可以称为“ASP.NET Core 共享框架”&#xff0c;其背后的基本思想是&#xff0c;包括一个典型的应用程序所需要的所有东西。但是&#xff0c;如果看看该包的依赖项&#xff0c;对“需要”的定义看起来相…

一个.NET Core开发者的Linux入门学习笔记

用.NET Core开发也有一段时间了&#xff0c;但是由于工作原因一直都是在Windows系统上进行的开发&#xff0c;一直想学习Linux然后把.NET Core开发的程序跑在Linux上&#xff0c;然后把心得体会记录一下发布再博客园&#xff0c;奈何拖延症泛滥&#xff0c;所以只写过一篇《Cen…

一二三系列之状压DP——Max Correct Set(一)Neko Rules the Catniverse (Large Version)(二)Make It Ascending(三)

文章目录一&#xff1a;CF1463F二&#xff1a;CF1152F2三&#xff1a;CF1342F一&#xff1a;CF1463F Max Correct Set 有一个结论&#xff1a;以xyxyxy为周期排列填充一定是不劣于最后的答案的 令pxy,rn%ppxy,rn\%ppxy,rn%p ⌊np⌋\lfloor\frac{n}{p}\rfloor⌊pn​⌋出现次数为…

实用帖 | 使用Visual Studio开发.NET Core推荐设置

Visual Studio 一直是.NET程序员的好伙伴&#xff0c;如今虽然.NET Core的开发可以用VSCode等其他环境&#xff0c;但VS依旧有强大的优势。今天来介绍下如何让VS用得更顺手的技能Here We Go!⛷基本配置首先要搞清楚的一点是&#xff0c;并不是所有版本的Visual Studio都支持.NE…

P3642 [APIO2016]烟火表演(左偏树、函数)

解析 感觉是左偏树的神题了. 首先有一个比较显然的结论&#xff0c;一个合法的方案中&#xff0c;两个叶子到它们 lca\text{lca}lca 的距离必须相等. 考虑设计 dp\text{dp}dp &#xff1a; fi,xf_{i,x}fi,x​ 表示 iii 的子树中&#xff0c;所有叶子到它的距离为 xxx 的最小…

.NET Core IdentityServer4实战 第一章-入门与API添加客户端凭据

内容&#xff1a;本文带大家使用IdentityServer4进行对API授权保护的基本策略作者&#xff1a;zara(张子浩) 欢迎分享&#xff0c;但需在文章鲜明处留下原文地址。本文将要讲述如何使用IdentityServer4对API授权保护以及如何携带Token进行访问受保护的API&#xff0c;通过HttpC…

蒋金楠:200行代码7个对象《ASP.NET Core框架揭密》苏州.NET俱乐部课程分享

【课程名称】《ASP.NET Core框架揭密》【老师介绍】蒋金楠&#xff0c;同程艺龙机票事业部技术专家&#xff0c;微软最有价值专家&#xff08;MVP&#xff0c;连续12&#xff09;&#xff0c;多本.NET专著作者。博客园Artech&#xff0c;公众号“大内老A”。【课程简介】讲述AS…

H - Checker FZU - 2041

H - Checker FZU - 2041 题意&#xff1a; 一个长度为n的01串&#xff0c;现在能将里面的1移动m次&#xff0c;问最长的连续0是多长 题解&#xff1a; 没想出来&#xff0c;看了其他人代码&#xff0c;就是对于每个0空间进行扩充&#xff0c;然后记录每次扩充的最大值 关键…

2021-4-1 多校省选模拟赛

文章目录考试复盘nmd考试复盘 T1T1T1 我可太喜欢这种不要脑子的莽试题了&#xff01;&#xff01; 考场上猜的结论d>3d>3d>3无解 d1,d2d1,d2d1,d2的填法也试出来了 d3d3d3只试出来了n,mn,mn,m是333的倍数的填法 但是另外的情况就GGGGGG了 最后交上去竟然还敲挂了(…

Reactive Extensions 相见恨晚的Rx.Net

何为Reactive Extensions&#xff08;Rx&#xff09;Rx是一个遵循函数式编程的类库&#xff0c;它引用观察者以及迭代器设计模式对可观察对象产生的数据进行异步消费。使用Rx&#xff0c;开发人员将使用LINQ运算符操作异步数据流&#xff0c;并使用调度程序参数化异步数据流中的…