2017蓝桥杯B组国赛 瓷砖样式
题目:
小明家的一面装饰墙原来是 3*10 的小方格。
现在手头有一批刚好能盖住2个小方格的长方形瓷砖。
瓷砖只有两种颜色:黄色和橙色。
小明想知道,对于这么简陋的原料,可以贴出多少种不同的花样来。
小明有个小小的强迫症:忍受不了任何2*2的小格子是同一种颜色。
(瓷砖不能切割,不能重叠,也不能只铺一部分。另外,只考虑组合图案,请忽略瓷砖的拼缝)
显然,对于 2*3 个小格子来说,口算都可以知道:一共10种贴法,如【p1.png所示】
但对于 3*10 的格子呢?肯定是个不小的数目,请你利用计算机的威力算出该数字。
注意:你需要提交的是一个整数,不要填写任何多余的内容(比如:说明性文字)
解题思路:
用dfs来做,黄色瓷砖用1表示,橙色用2来表示,用A数组来表示起始的状态,由于2*2的小格子不是同一种颜色,用一个judge函数来判断是否满足条件。
/*qq:1239198605ctgu_yyf*/#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<queue>
#include<stack>
#include<cstring>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;
int res;
int mapp[5][15];
bool judge(int x,int y){if(mapp[x][y]==mapp[x-1][y-1]&&mapp[x][y]==mapp[x-1][y]&&mapp[x][y]==mapp[x][y-1])return false;if(mapp[x][y]==mapp[x-1][y]&&mapp[x][y]==mapp[x-1][y+1]&&mapp[x][y]==mapp[x][y+1])return false;if(mapp[x][y]==mapp[x][y-1]&&mapp[x][y]==mapp[x+1][y-1]&&mapp[x][y]==mapp[x+1][y])return false;if(mapp[x][y]==mapp[x][y+1]&&mapp[x][y]==mapp[x+1][y]&&mapp[x][y]==mapp[x+1][y+1])return false;return true;
}
void dfs(int x,int y)
{if(x==3&&y==10){res++;return ;}if(y>10){dfs(x+1,1);return ;}if(mapp[x][y]==-1){if(mapp[x][y+1]==-1){mapp[x][y]=1;mapp[x][y+1]=1;if(judge(x,y)){dfs(x,y+1);}mapp[x][y]=-1;mapp[x][y+1]=-1;mapp[x][y]=2;mapp[x][y+1]=2;if(judge(x,y)){dfs(x,y+1);}mapp[x][y]=-1;mapp[x][y+1]=-1;}if(mapp[x+1][y]==-1){mapp[x][y]=1;mapp[x+1][y]=1;if(judge(x,y)){dfs(x,y+1);}mapp[x][y]=-1;mapp[x+1][y]=-1;mapp[x][y]=2;mapp[x+1][y]=2;if(judge(x,y)){dfs(x,y+1);}mapp[x][y]=-1;mapp[x+1][y]=-1;}}else {dfs(x,y+1);}
}
int main()
{ios::sync_with_stdio(false);memset(mapp,-1,sizeof(mapp));res=0;dfs(1,1); cout<<res<<endl;return 0;
}
答案:17726884
2017蓝桥杯B组国赛 瓷砖样式相关推荐
- 第十二届蓝桥杯青少年组国赛C++中级组 第1题 -- 第3题(python3实现)
12届蓝桥杯青少年组国赛C++中级组编程题 12届蓝桥杯青少年组国赛C++中级组编程题_lybc2019的博客-CSDN博客 蓝桥杯算法学习路线 | 全程制作过程公开 蓝桥杯算法学习路线 | 全程制作 ...
- 【2021年蓝桥杯Java-B组国赛题解】
2021年蓝桥杯Java-B组国赛
- 2021第十二届蓝桥杯Python组国赛/决赛 题解
2021第十二届蓝桥杯Python组国赛/决赛 题解 前言 2021年第十二届蓝桥杯国赛/决赛,因为疫情原因没有像往年一样前往北京参赛,而是在自己学校的机房进行考试,形式上类似蓝桥杯省赛,但由于参加国 ...
- 2019第十届蓝桥杯CB组国赛心得
一年一度的传说中的"暴力"杯又过去了,今年是第一次参加蓝桥杯省赛跟国赛,今天刚从北京回来,觉得应该写点东西,觉得不能再叫蓝桥杯暴力杯了当然大佬觉得还是暴力还请忽略,要改名了,今年难 ...
- 第八届蓝桥杯B组国赛总结
第七届省二,第八届靠运气省一进国赛.本来以为会在北大比赛,结果在北(方工业)大. 食物据说很难吃,就直接留在那里了. Dev还被强行绑了快捷键. 能来帝都一次还是很不错的.跟着dalao们夜里的小红车 ...
- 第十二届蓝桥杯CB组国赛二等奖总结
虽然只是一个中游国二(全校第7),但是对我个人来说,这次获奖意义蛮大的. 首先,我在国赛前没有准备- 其实省赛前有认真准备,主要在Acwing训练. 但是省赛对我打击挺大的,当时由于认真准备了很久,对 ...
- 2018年第九届蓝桥杯B组 国赛
一.换零钞 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. X 星球的钞票的面额只有:100 元,5 元,2 元,1 元,共 4 种. 小明去 X 星旅游,他手里只 ...
- 2017蓝桥杯C/C++B组国赛-瓷砖样式
题目 题目链接 题解 DFS. 方案需要满足的要求: 只能有黄和橙两种颜色: 必须填满: 任何一种颜色都不允许同时出现在 2 × 2 2×2 2×2 的方格中: 任意一种颜色图案都必须能由 2 × 1 ...
- 2017年第八届蓝桥杯 JavaB组国赛 第五题 填字母游戏
标题:填字母游戏 小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格 ...
最新文章
- python数据库gui_从python数据库在gui上打印数据
- 学习AOP 之前必须明白的几个概念
- 【暴力】I Liked Matrix!
- discuz 不能上传头像提示can not write to the data/tmp folder
- 如果你走投无路时,会不会去摆摊做小生意?
- 黄山旅游自助攻略住宿行程路线篇
- 【Unity】【Odin Inspector】关于AOT Generation
- win10java编辑器_5个最好的Windows 10的字幕编辑软件
- access有效性规则不为空值_access窗体文本框有效性规则中输入is not null无效
- redis搭建哨兵天坑
- 学习突围5 - 关于计划
- 函数默认参数的TDZ
- nios自学笔记三:nios常用外设C函数整理
- dreamweaver网页设计作业制作 小米商城官网商城购物网页设计 WEB静态网页作业模板 大学生个人购物商城网页代码 dw个人网页作业
- 移动网络简介与RRC
- 《深度学习,统计学习,数学基础》人工智能算法工程师手册
- 磁盘空间分析SpaceSniffer
- 如何解决安装ESXI 5.5出现紫屏或者红屏
- Edraw Max试用感受
- vbs计算机病毒代码,求最全的vbs病毒代码,要破坏性的。谢谢,回答的好我多给分。...
热门文章
- 淘宝品牌产品无授权开直通车怎么实现
- 浅析分布式数据库同步技术理论
- JAVA开发(神乎其神的区块链概念和技术)
- Microsoft Visusl C++2010运行程序时,调试弹出黑框自动闪退无法看见运行结果的解决方法
- KOBAS数据库使用指南
- 数据结构实训《表达式求值》
- 雷电模拟器如何启动某一特定应用 | ldconsole.exe runapp打开雷电内的APP没有任何反应怎么办
- Android编译Lambda,Android lambda 入门教程
- 正确进入Iphone DFU模式
- freemarker导出word文档——WordXML格式解析