第七届蓝桥杯省赛A7:剪邮票

第七届蓝桥杯省赛A7:剪邮票题目描述 如 图 1 jpg 有 12 张连在一起的 12 生肖的邮票 现在你要从中剪下 5 张来 要求必须是连着的 仅仅连接一个角不算相连 比如 图 2 jpg 图 3 jpg 中 粉红色所示部分就是合格的剪取 请你计算 一共有多少种不同的剪取方法 请填写表示方案数目的整数 注意 你提交的应该是一个整数 不要填写任何多余的内容或说明性文字 思路分析全排列加连通块判断 初始化一个

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

思路分析

全排列加连通块判断。初始化一个3*4的二维数组,然后任选五个位置(保证后面不重复),最后判断这五个位置是否连通即可。

具体实现

代码:

#include 
     using namespace std; int dir[4][2]={ 
   { 
   0,1},{ 
   0,-1},{ 
   1,0},{ 
   -1,0}}; bool vis[3][4]={ 
   false}; int b[15],res; int maze[3][4]; bool in(int x,int y) { 
    //判断是否越界  return x>=0&&x<3&&y>=0&&y<4; } //判断连通性  void dfs(int x,int y) { 
    vis[x][y]=true; for(int i=0;i<4;i++) { 
    int dx=x+dir[i][0]; int dy=y+dir[i][1]; if(in(dx,dy)&&!vis[dx][dy]&&maze[dx][dy]==1) { 
    //找到下一个1就继续dfs  dfs(dx,dy); } } } int main() { 
    int b[]={ 
   0,0,0,0,0,0,0,1,1,1,1,1}; //12选5  do { 
    memset(maze,0,sizeof(maze)); memset(vis,false,sizeof(vis)); for(int i=0;i<3;i++) { 
    for(int j=0;j<4;j++) { 
    //选择了5个数为1  if(b[i*4+j]==1) { 
    maze[i][j]=1; } } } int ans=0; for(int i=0;i<3;i++) { 
    for(int j=0;j<4;j++) { 
    if(maze[i][j]==1&&!vis[i][j]) { 
    //计算连通块个数  ans++; dfs(i,j); } } } if(ans==1) { 
    //只有一个连通块,满足条件  res++; } }while(next_permutation(b,b+12)); cout<<res; return 0; } 

最终答案:116

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176120.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午10:39
下一篇 2026年3月26日 下午10:40


相关推荐

  • web前端开发常用工具有哪些?

    web前端开发常用工具有哪些?Web 前端是一个新兴职业 市场需求大 薪资待遇高 吸引了很多人加入学习 无论是初学小白亦或是自身前端开发人员 好用的软件工具可以帮助他们更好的工作 下面苏州学码思小编为大家介绍一些常用的 web 前端开发工具 1 BootstrapBoo 是快速开发 Web 应用程序的前端工具包 它是一个 CSS 和 HTML 的集合 它使用了新的浏览器技术 给你的 Web 开发提供了时尚的版式 表单 butt

    2026年3月26日
    2
  • Java–线程Thread生命周期的几种状态相互转换及常用API方法说明

    Java–线程Thread生命周期的几种状态相互转换及常用API方法说明大家好 我是贾斯汀 今天主要聊一聊关于线程的瓜 先来看一下线程这张图线程的几种运行状态之间运行流程 看不懂没关系 慢慢来学习 往下学习来继续了解一下 什么是线程 线程是进程的一部分 是程序执行中的一条执行路线 进程就是指程序在其自身地址空间的一次执行活动 是程序独立运行的基本单位 一个进程可以包含多条线程 一个条线程对应一个进程中的一条执行路线 线程的几种创建方式 主要由四种方式创建线程具体每一种创建方式说明及代码实现如下 创建 Thread 线

    2026年3月16日
    2
  • 26-黑马程序员——OC 语言学习笔记— Foundation01

    26-黑马程序员——OC 语言学习笔记— Foundation01

    2021年9月6日
    52
  • Mount NTFS Partitions

    Mount NTFS PartitionsMountNTFSPartitions18January2007Windowsusesadifferentfilesystem(NTFS)tostorefiles.InorderforFedoratoreadthatfilesystem,yourequireNTFSsupportinyourkernel.Youcaneither

    2022年6月26日
    40
  • 简述Python垃圾回收机制「建议收藏」

    简述Python垃圾回收机制「建议收藏」引言许多高级语言都具有自己的垃圾回收机制,以管理计算机内存,Python也不例外。对于垃圾回收机制的了解程度,成了开发人员是否真正了解Python的检验手段,在面试的时候许多面试官也喜欢以此作为题目考察面试者Garbagecollection(GC)概述现在的高级语言如java,c#等,都采用了垃圾回收机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可…

    2022年6月15日
    28
  • Midjourney实战教程:从入门到产品应用,生成思路+换脸材质模拟+服装创作技巧

    Midjourney实战教程:从入门到产品应用,生成思路+换脸材质模拟+服装创作技巧

    2026年3月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号