如【图1.jpg】, 有12张连在一起的12生肖的邮票。
现在你要从中剪下5张来,要求必须是连着的。
(仅仅连接一个角不算相连)
比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。

请你计算,一共有多少种不同的剪取方法。

请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

思路:一开始准备建图跑dfs,但是那样的话,就会少很多种情况,例如2 5 6 7 10这样的情况。就只能每层dfs的时候,都要对已经走过的格子,进行扩展。当已经走过5个格子的时候,将走过的格子数改成字符串,放到set中,最终set里面字符串的个数就是答案数。
代码如下:

#include<bits/stdc++.h>
using namespace std;const int maxx=1e5+100;int vis[3][4],b[5][5];
int tol;
int d[4][2]={{-1,0},{1,0},{0,1},{0,-1}};
int a[10];
set<string> s;
inline string fcs()
{string ans="";string tt;for(int i=0;i<5;i++){int x=a[i];tt="";if(x==0) tt="0";while(x){tt=tt+(char)('0'+x%10);x/=10;}reverse(tt.begin(),tt.end());ans=ans+tt+" ";}//cout<<ans<<endl;return ans;
}
inline void dfs(int cnt)
{if(cnt==5){int tmp=0;for(int i=0;i<3;i++){for(int j=0;j<4;j++){if(vis[i][j]) a[tmp++]=b[i][j];}}//cout<<tmp<<endl;s.insert(fcs());return ;}for(int i=0;i<3;i++){for(int j=0;j<4;j++){if(vis[i][j]){for(int k=0;k<4;k++){int x=d[k][0]+i;int y=d[k][1]+j;if(x<0 || x>=3 || y<0 || y>=4)continue;if(!vis[x][y]){vis[x][y]=1;dfs(cnt+1);vis[x][y]=0;}}}}}
}
int main()
{tol=0;memset(vis,0,sizeof(vis));int num=0;for(int i=0;i<3;i++) for(int j=0;j<4;j++) b[i][j]=++num;for(int i=0;i<3;i++){for(int j=0;j<4;j++){vis[i][j]=1;dfs(1);vis[i][j]=0;}}printf("%d\n",s.size());return 0;
}

努力加油a啊

蓝桥杯2016省赛真题-剪邮票(dfs)相关推荐

  1. [蓝桥杯][2013年第四届真题]剪格子-dfs

    题目描述 历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. 我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60. ...

  2. 英雄之盾-第11届蓝桥杯Scratch省赛真题第4题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第58讲. 第11届蓝桥杯青少年组省赛原定于2020年3月7日举行,因疫情延期到2020年6 ...

  3. 小猫打螃蟹-第10届蓝桥杯Scratch省赛真题第2题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第67讲. 第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试.Scrat ...

  4. 捉迷藏之二-第10届蓝桥杯Scratch国赛真题第6题程序2

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第15 ...

  5. 击鼓游戏-第10届蓝桥杯Scratch省赛真题第7题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第62讲. 第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试.Scrat ...

  6. 跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第27讲. 第13届蓝桥杯青少年组国赛于2022年5月29日举行,形式为在线考试.Scrat ...

  7. 自动驾驶-第10届蓝桥杯Scratch省赛真题第5题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第64讲. 第10届蓝桥杯青少年组省赛于2019年3月24日举行,形式为线下考试.Scrat ...

  8. 魔法师盖城墙-第11届蓝桥杯Scratch国赛真题第4题

    本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第10 ...

  9. 对对碰-第11届蓝桥杯Scratch省赛真题第6题

    [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第56讲. 第11届蓝桥杯青少年组省赛原定于2020年3月7日举行,因疫情延期到2020年6 ...

最新文章

  1. java奇怪的问题_一个奇怪的Java集合问题
  2. 表单form类型数据转换为数组array
  3. Kotlin实战指南十七:JvmField、JvmStatic使用
  4. 第五章 常用Lua开发库1-redis、mysql、http客户端
  5. echart 折线从左到右动画效果_echarts之自动切换折线图
  6. 读取带空格字符串小结
  7. python爬携程酒店评论_python爬虫爬取携程网的酒店评论数据时,有个请求参数不知道是怎么生成的?...
  8. 字符串string和内存流MemoryStream及比特数组byte[]互转
  9. anaconda moviepy_Anaconda的安装和Jupyter Notebook使用
  10. 大数据_Flink_流式处理_Flik Vs Spark streaming_Flink的特点---Flink工作笔记0007
  11. Netty工作笔记0051---Netty核心模块2
  12. 断路器之一:Hystrix 使用与分析
  13. oracle中怎么sqlprompt,oracle提示符sqlprompt
  14. oracle公司财务管理课程设计,Oracle财务管理系统培训手册—资产模块(FA).doc
  15. 推荐几款网盘资源搜索站点,必须收藏 !
  16. Your system is infected with 3 viruses!(您的系统感染了3种病毒!)
  17. Ubuntu 16.04 鼠标可以移动不能点击问题
  18. 磁盘被写保护怎么办?5个方案解除它
  19. cadence 通孔焊盘_【精品】PCB设计软件allegro不规则带通孔焊盘的制作
  20. uniApp简单使用webSocket实现核销二维码业务

热门文章

  1. pip /usr/bin/pip: No such file or directory
  2. msf aux模块使用
  3. html中after对应的样式怎么写,css – 如何创建内联样式:before和:after
  4. android签名文件查看工具,ionic 发布android,并查看签名文件。
  5. osg中实现HUDAxis功能
  6. Android开发之品牌机型不同setMargins属性无效的bug
  7. idea使用svn拉取项目代码_IntelliJ IDEA 14 拉取SVN maven 多模块项目 部署tomcat 详细图解!...
  8. android retrofit2.0 rxjava2,Android - 网络请求之 Retrofit2 + RxJava
  9. java 7.0下载_Java jre 7.0
  10. SVN服务器更换地址解决方法