题目描述

剪邮票

思路分析

全排列+深度优先搜索+连通检查

代码实现

package com.atguigu.TEST;class Main{static int a[] = { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1 };static int ans;static boolean vis[]=new boolean[12];static void dfs(int g[][], int i, int j) {g[i][j] = 0;if (i - 1 >= 0 && g[i - 1][j] == 1)dfs(g, i - 1, j);if (i + 1 <= 2 && g[i + 1][j] == 1)dfs(g, i + 1, j);if (j - 1 >= 0 && g[i][j - 1] == 1)dfs(g, i, j - 1);if (j + 1 <= 3 && g[i][j + 1] == 1)dfs(g, i, j + 1);}public static boolean check(int path[]){//连通性检测int g[][]=new int[3][4];//二维数组转化为一维数组for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) {if (path[i*4+j]==1){g[i][j]=1;}else {g[i][j]=0;}}}int cnt=0;//连通块检测//g上面就有5个格子被标记为1,现在才用dfs做连通性检测,要求只有一个连通块for (int i = 0; i < 3; i++) {for (int j = 0; j < 4; j++) {if(g[i][j]==1){dfs(g,i,j);cnt++;}}}return cnt==1;}public static void f(int k,int path[]){if(k==12){//一种排列已经生成if(check(path)){   ans++;}}//从k往后每个数字都可以放在k位for (int i = 0; i < 12; i++) {if (i > 0 && a[i] == a[i - 1] && !vis[i - 1])continue; // 现在准备选取的元素和上一个元素相同,但是上一个元素还没被使用if (!vis[i]) { // 没有被用过的元素可以抓入到pathvis[i] = true;  // 标记为已访问path[k] = a[i]; // 将a[i]填入到path[k]中f(k + 1, path); // 递归vis[i] = false; // 回溯}}}public static void main(String[] args) {int path[] = new int[12];f(0,path);System.out.println(ans);}
}

答案

116

2016蓝桥杯省赛---java---B---7(剪邮票)相关推荐

  1. 2016蓝桥杯国赛 JAVA C组第五题 路径之谜

    蓝桥杯确实很暴力... 路径之谜 小明冒充X星球的骑士,进入了一个奇怪的城堡. 城堡里边什么都没有,只有方形石头铺成的地面. 假设城堡地面是 n x n 个方格.[如图1.png]所示. 按习俗,骑士 ...

  2. 第七届 蓝桥杯 省赛 第七题 剪邮票

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

  3. 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数

    2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...

  4. java迷宫类编程题_第十届蓝桥杯省赛java类B组 试题 E:迷宫 (动态规划之回溯法)...

    问题描述 试题 E: 迷宫 [问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为 ...

  5. 第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解

    第十二届蓝桥杯省赛JAVA B组杨辉三角形个人题解(非满分) import java.util.Scanner; public class Main {public static void main( ...

  6. 2021第十二届蓝桥杯省赛JAVA B组 题目+答案(复现赛)

    2021第十二届蓝桥杯省赛JAVA B组 题目+答案(复现赛) A:ASC B:卡片 C:直线 D:货物摆放 E:路径 Floyed Dijkstra F:时间显示 G:最少砝码 H:杨辉三角形 I: ...

  7. 第十二届蓝桥杯省赛 Java 大学 B 组—砝码称重—满分百分题解

    第十二届蓝桥杯省赛 Java 大学 B 组-砝码称重-满分百分题解 一.解题思路 1.解法一( Java ) 解法思路:简单模拟 ☝ArrayList 遍历 + HashSet 存储(去重) 伪代码如 ...

  8. 2015年第六届蓝桥杯 - 省赛 - Java大学B组 - A. 三角形面积

    三角形面积 如[图1]所示.图中的所有小方格面积都是1. 那么,图中的三角形面积应该是多少呢? 请填写三角形的面积.不要填写任何多余内容或说明性文字. Ideas 这道题跟2018年第九届蓝桥杯 - ...

  9. 2016蓝桥杯b组java试题及答案_2016年第七届蓝桥杯java B组省赛试题

    2016年第七届蓝桥杯java B组省赛试题 1-3.结果填空 4-5.代码填空 6-7.结果填空 8-10.程序设计 1.煤球数目  (结果填空) 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, ...

  10. 填词游戏java_第八届蓝桥杯国赛 Java B组 第五题 填字母游戏(博弈论)

    解题思路: 因为是博弈论,所以我们要对先手的必胜态和必败态分析. 1.首先我们看赢遇到的状态,就是给出的串的子串有LO*,*OL,L*L这三种情况(就叫福利局吧~).都可以直接填出LOL,获胜. 2. ...

最新文章

  1. Linux嵌入式驱动管理调试平台 ------ 我的第一个开源项目
  2. 模型转换状态已支持Webhook!
  3. win10安装JDK详细教程
  4. Python 技术篇-用os库读取本地文件的字节数、文件大小
  5. the next journal submission for mechanism should be at this journal
  6. 超大超长图片居中显示且放大缩小无影响
  7. 根据另外一个表来更新,增加字段
  8. Node中的fs模块
  9. 这里有个古老的车站:三年只为一人开
  10. 2020年上半年美团夜宵指数发展报告
  11. ibm服务器硬盘谁生产,IBM硬盘-昔日的开山鼻祖为何家道中落?
  12. jquery dropload
  13. 华为交换机ensp基础命令
  14. js对联广告,顶部浮动广告,固定位置广告插件
  15. 化工、食品外贸行业管理难点
  16. 单细胞转录组测序和空间转录组学
  17. [Maven实战-许晓斌]-[第二章]-2.1在Windows上安装maven
  18. 随笔3:有调节的中介示例之 Model 1
  19. 三分钟搞定dbeaver企业版
  20. 论 $*、$@、$*、$@的区别

热门文章

  1. K. Easy Sigma(类欧几里得)
  2. Codeforces Round #626 (Div. 2) D. Present 按位贡献 + 快排新姿势
  3. 【NOI2015】品酒大会【后缀数组】【并查集】
  4. CF528C. Data Center Drama(欧拉回路,构造)
  5. P4173 残缺的字符串
  6. 【无码专区7】括号序列(思维)
  7. CF464E The Classic Problem(主席树+哈希+最短路)
  8. P4849 寻找宝藏(模板:四维偏序)
  9. CF1556F-Sports Betting【状压dp,数学期望】
  10. hdu4336-Card Collector【min-max容斥,期望概率】