第八届蓝桥杯C/C++程序设计本科B组决赛 ——瓷砖样式(填空题)【DP?我的暴力排列搜索】

大致思路:
很努力的题解:
- using namespace std;
- int a[][];
- int n,m;
- int dir[][]={{,},{,} };
- int is_range(int x,int y){//判断当前点在范围内返回1
- if(x<||x>n||y>m||y<)
- return ;
- return ;
- }
- int grid(int x,int y){
- if(is_range(x-,y-)==)return ;//判断右下角起往左上 是否出现2*2的小格子是同一种颜色
- int t=a[x][y];
- if(t!=-&&t==a[x-][y]&&t==a[x][y-]&&t==a[x-][y-])
- return ;
- return ;
- }
- set<int>has;
- int gethash(int a[][],int n,int m){//将整个图用string的“01”串进行存进来
- int s=;
- for(int i=;i<=n;i++){
- for(int j=;j<=m;j++){
- s=(s<<) + a[i][j];
- // s+=ch;
- }
- }
- return s;
- }
- int ans=;
- int check(int i0,int j0,int i1,int j1){
- if(grid(i0,j0)||grid(i1,j1))
- return ;
- return ;
- }
- void dfs(int i0,int j0,int i1,int j1,int step,int n,int m){//step表示本次搜索应该搜索第step块了
- if(check(i0,j0,i1,j1)==)//出现四块瓷砖是相同的
- return ;
- if(step==){ ///搜索结束条件,全局已经铺满了15个方块数了
- int str=gethash(a,n,m);//返回当前局面
- if(has.count(str)==){
- ans++;has.insert(str);
- printf("**step=%d,a[]=%10d,ans=%4d\n",step,str,ans);
- }
- return ;
- }
- //int str=gethash(a,n,m);//返回当前局面printf(" step=%d,a[]=%10d,ans=%4d\n",step,str,ans);
- for(int i=;i<=n;i++){
- for(int j=;j<=m;j++){
- if(a[i][j]==-){ //该地为空
- for(int k=;k<=;k++){//横着或者竖着放一块瓷砖;
- int dx,dy;
- dx=i+dir[k][];
- dy=j+dir[k][];
- if(is_range(dx,dy)==||a[dx][dy]!=-)continue;//越界,重复
- for(int col=;col<=;col++){ //两种颜色
- a[i][j]=a[dx][dy]=col;
- dfs(i,j,dx,dy,step+,n,m);
- a[i][j]=a[dx][dy]=-;
- }
- }
- return ;
- }
- }
- }
- return ;
- }
- int main(){
- ans=;
- has.clear();//清空set
- memset(a,-,sizeof(a));//瓷砖黄色——值0,瓷砖橙色--1
- // n=2;m=3;
- n=;m=;
- dfs(,,,,,n,m);
- printf("%d\n",ans);
- return ;
- }
(代码有详细注释)
———————所以本题我的最终答案是120302!———————————
第八届蓝桥杯C/C++程序设计本科B组决赛 ——瓷砖样式(填空题)【DP?我的暴力排列搜索】的更多相关文章
- 第八届蓝桥杯C/C++程序设计本科B组决赛 ——发现环(编程大题_签到题_tarjan判环)
标题:发现环 小明的实验室有N台电脑,编号1~N.原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络.在树形网络上,任意两台电脑之间有唯一的路径相连. 不过在最近一次维护网络时,管理员误操 ...
- 2015年第六届蓝桥杯C/C++程序设计本科B组决赛
1.积分之谜(枚举) 2.完美正方形 3.关联账户(并查集) 4.密文搜索 5.居民集会 6.模型染色 1.积分之迷 小明开了个网上商店,卖风铃.共有3个品牌:A,B,C.为了促销,每件商品都会返固定 ...
- 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 ——居民集会(编程大题)
标题:居民集会 蓝桥村的居民都生活在一条公路的边上,公路的长度为L,每户家庭的 位置都用这户家庭到公路的起点的距离来计算,第i户家庭距起点的距 离为di.每年,蓝桥村都要举行一次集会.今年,由于村里的 ...
- 2016年第七届蓝桥杯C/C++程序设计本科B组决赛
2.答案300 刁丝卫代码,比赛时long long写成int,结果成了263...一等擦肩而过... #include <iostream> #include <fstream&g ...
- 2014年第五届蓝桥杯C/C++程序设计本科B组决赛
1.年龄巧合(枚举) 2.出栈次序(推公式/Catalan数) 3.信号匹配(kmp) 4.生物芯片(完全平方数) 5.Log大侠(线段树) 6.殖民地 1.年龄巧合 小明和他的表弟一起去看电影,有人 ...
- 2013年第四届蓝桥杯C/C++程序设计本科B组决赛
1.猜灯谜(枚举) 2.连续奇数和(等差数列) 3.空白格式化(去除空格) 4.高僧斗法(阶梯nim) 5.格子刷油漆(dp) 6.农场阳光 1.猜灯谜 A 村的元宵节灯会上有一迷题:请猜谜 * 请猜 ...
- 2012年第三届蓝桥杯C/C++程序设计本科B组决赛
1.星期几(取余/excel) 2.数据压缩 3.拼音字母(比较) 4.DNA比对(dp) 5.方块填数 1.星期几[结果填空] (满分5分) 1949年的国庆节(10月1日)是星期六. ...
- 2015年第六届蓝桥杯C/C++程序设计本科B组决赛 完美正方形
完美正方形 如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形.历史上,人们花了很久才找到了若干完美正方形.比如:如下边长的22个正方形 2 3 4 6 7 8 12 13 ...
- 第七届蓝桥杯C/C++程序设计本科B组决赛 ——机器人塔(程序大题)
机器人塔 X星球的机器人表演拉拉队有两种服装,A和B.他们这次表演的是搭机器人塔. 类似: A B B A B A A A B B B B B A BA B A B B A 队内的组塔规则是: A 只 ...
随机推荐
- android基础---->ContentProvider的使用
内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性.目前,使用内容提 ...
- 一段话让你理解vuex的工作模式!
vuex 个人理解:管理各组件公共状态的vue插件,也是个组件相互通信的插件. 组成:1.State:状态树. 2.Getters:操作state. 3.Mutation:唯一改变state状态的操作 ...
- [转帖]我最近研究了hive的相关技术,有点心得,这里和大家分享下。
我最近研究了hive的相关技术,有点心得,这里和大家分享下. https://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html 首 ...
- Jenkins+maven+gitlab自动化部署之Jenkins部署(三)
本章开始正式搭建Jenkins: 公司现在使用的jenkins版本是2.150.3,但是本次实验安装的版本我们选择最新的 2.164.3(当然,当你阅读这篇文章时,此版本已经不是最新),jenkins ...
- SpringMVC获取参数的几种方式
前言: 年末了,忙了一年了却发现系统的整理的东西很少,一些基础的东西都未做整理,这里就将它随便整理一下,增加一些印象,当然在网上看到一些好的资料也会整理下来以备后用.今天整理一下springMVC获取 ...
- MySQL常用的系统函数
MySQL常用的系统函数 2019年01月17日 17:49:14 pan_junbiao 阅读数 155 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...
- WUSTOJ 1338: The minimum square sum(Java)
题目链接:1338: The minimum square sum Description Given a prime p(p<108), you are to find min{x2+y2}, ...
- WUSTOJ 1320: 饭卡(Java)动态规划-背包
题目链接:
- linux终端提示符修改
Linux主机名莫名其妙的由@myhostname变成了@bogon了之后 1.在linux下添加一个127.0.0.2名叫bogon的主机此方法使用后,bogon主机名得以解析,使用的主机名仍为bo ...
- Hi3531a海思logo加载的实现流程
海思篇之开机logo的加载(Hi3531a命令版) 2019-02-02 11:31:51 Wilburn0 阅读数 479更多 分类专栏: 海思开发 版权声明:本文为博主原创文章,遵循CC 4. ...