题目:

小明家的一面装饰墙原来是 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组国赛 瓷砖样式相关推荐

  1. 第十二届蓝桥杯青少年组国赛C++中级组 第1题 -- 第3题(python3实现)

    12届蓝桥杯青少年组国赛C++中级组编程题 12届蓝桥杯青少年组国赛C++中级组编程题_lybc2019的博客-CSDN博客 蓝桥杯算法学习路线 | 全程制作过程公开 蓝桥杯算法学习路线 | 全程制作 ...

  2. 【2021年蓝桥杯Java-B组国赛题解】

    2021年蓝桥杯Java-B组国赛

  3. 2021第十二届蓝桥杯Python组国赛/决赛 题解

    2021第十二届蓝桥杯Python组国赛/决赛 题解 前言 2021年第十二届蓝桥杯国赛/决赛,因为疫情原因没有像往年一样前往北京参赛,而是在自己学校的机房进行考试,形式上类似蓝桥杯省赛,但由于参加国 ...

  4. 2019第十届蓝桥杯CB组国赛心得

    一年一度的传说中的"暴力"杯又过去了,今年是第一次参加蓝桥杯省赛跟国赛,今天刚从北京回来,觉得应该写点东西,觉得不能再叫蓝桥杯暴力杯了当然大佬觉得还是暴力还请忽略,要改名了,今年难 ...

  5. 第八届蓝桥杯B组国赛总结

    第七届省二,第八届靠运气省一进国赛.本来以为会在北大比赛,结果在北(方工业)大. 食物据说很难吃,就直接留在那里了. Dev还被强行绑了快捷键. 能来帝都一次还是很不错的.跟着dalao们夜里的小红车 ...

  6. 第十二届蓝桥杯CB组国赛二等奖总结

    虽然只是一个中游国二(全校第7),但是对我个人来说,这次获奖意义蛮大的. 首先,我在国赛前没有准备- 其实省赛前有认真准备,主要在Acwing训练. 但是省赛对我打击挺大的,当时由于认真准备了很久,对 ...

  7. 2018年第九届蓝桥杯B组 国赛

    一.换零钞 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. X 星球的钞票的面额只有:100 元,5 元,2 元,1 元,共 4 种. 小明去 X 星旅游,他手里只 ...

  8. 2017蓝桥杯C/C++B组国赛-瓷砖样式

    题目 题目链接 题解 DFS. 方案需要满足的要求: 只能有黄和橙两种颜色: 必须填满: 任何一种颜色都不允许同时出现在 2 × 2 2×2 2×2 的方格中: 任意一种颜色图案都必须能由 2 × 1 ...

  9. 2017年第八届蓝桥杯 JavaB组国赛 第五题 填字母游戏

    标题:填字母游戏 小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说: "我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了". K大师在纸上画了一行n个格 ...

最新文章

  1. python数据库gui_从python数据库在gui上打印数据
  2. 学习AOP 之前必须明白的几个概念
  3. 【暴力】I Liked Matrix!
  4. discuz 不能上传头像提示can not write to the data/tmp folder
  5. 如果你走投无路时,会不会去摆摊做小生意?
  6. 黄山旅游自助攻略住宿行程路线篇
  7. 【Unity】【Odin Inspector】关于AOT Generation
  8. win10java编辑器_5个最好的Windows 10的字幕编辑软件
  9. access有效性规则不为空值_access窗体文本框有效性规则中输入is not null无效
  10. redis搭建哨兵天坑
  11. 学习突围5 - 关于计划
  12. 函数默认参数的TDZ
  13. nios自学笔记三:nios常用外设C函数整理
  14. dreamweaver网页设计作业制作 小米商城官网商城购物网页设计 WEB静态网页作业模板 大学生个人购物商城网页代码 dw个人网页作业
  15. 移动网络简介与RRC
  16. 《深度学习,统计学习,数学基础》人工智能算法工程师手册
  17. 磁盘空间分析SpaceSniffer
  18. 如何解决安装ESXI 5.5出现紫屏或者红屏
  19. Edraw Max试用感受
  20. vbs计算机病毒代码,求最全的vbs病毒代码,要破坏性的。谢谢,回答的好我多给分。...

热门文章

  1. 淘宝品牌产品无授权开直通车怎么实现
  2. 浅析分布式数据库同步技术理论
  3. JAVA开发(神乎其神的区块链概念和技术)
  4. Microsoft Visusl C++2010运行程序时,调试弹出黑框自动闪退无法看见运行结果的解决方法
  5. KOBAS数据库使用指南
  6. 数据结构实训《表达式求值》
  7. 雷电模拟器如何启动某一特定应用 | ldconsole.exe runapp打开雷电内的APP没有任何反应怎么办
  8. Android编译Lambda,Android lambda 入门教程
  9. 正确进入Iphone DFU模式
  10. freemarker导出word文档——WordXML格式解析