第七届蓝桥杯省赛javaB组 第七题剪邮票

剪邮票
如【图1.jpg】, 有12张连在一起的12生肖的邮票。
现在你要从中剪下5张来,要求必须是连着的。
(仅仅连接一个角不算相连)
比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。
请你计算,一共有多少种不同的剪取方法。
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。



-------------------------------------------------------------------------------------------------
思路:1.五重循环求出找出所有可能的邮票减法,注意去掉剪的邮票相同但剪的次序不同的情况。2.dfs每种剪法。利用{+4,-4,+1,-1}的位置关系来判断每张邮票是否是上下左右相邻的,此时要注意4+1=5的情况。
public class Main {
static int way[] = {-4,-1,1,4};
static int sum = 0;
public static void main(String args[]){
int flag[] = new int[13];
for(int a = 1;a<=12;a++){
for(int b = a+1;b<=12;b++){
for(int c = b+1;c<=12;c++){
for(int d = c+1;d<=12;d++){
for(int e = d+1;e<=12;e++){
if(a!=b&&a!=c&&a!=d&&a!=e&&
b!=c&&b!=d&&b!=e&&
c!=d&&c!=e&&
d!=e){
// 得到所有可能的剪法
int arrays[] = {a,b,c,d,e};
flag[a] = 1;
flag = new int[13];
qiu(arrays[0],flag,arrays);
int l;
for(l = 0;l<=4;l++){
if(flag[arrays[l]]==0){
break;
}
}
if(l==5){
sum++;
}
}
}
}
}
}
}
System.out.println(sum);
}
// dfs
public static void qiu(int goal,int flag[],int arrays[]){
int i;
int res = 0;
for(i = 0;i<4;i++){
res = goal+way[i];
int mark = com(arrays,res);
if(mark == 1 && flag[res] == 0){
if(res == 5&&goal==4) {
continue;
}
if(res == 9&&goal==8) {
continue;
}
if(res == 4&&goal==5) {
continue;
}
if(res == 8&&goal==9) {
continue;
}
flag[res] = 1;
qiu(res,flag,arrays);
}
}
}
public static int com(int arrays[],int temp){
for(int i = 0;i<arrays.length;i++){
if(arrays[i] == temp){
return 1;
}
}
return -1;
}
}
第七届蓝桥杯省赛javaB组 第七题剪邮票的更多相关文章
- 第七届蓝桥杯省赛JavaB组——第十题压缩变换
题目: 压缩变换小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战.最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面 ...
- 第十届蓝桥杯省赛JavaB组个人题解
前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...
- 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告
2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...
- 2016年第七届蓝桥杯C/C++B组省赛题目解析
题目1:煤球数目 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填 ...
- 一步之遥——第七届蓝桥杯C语言B组(国赛)第一题
原创 一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里.矿车停在平直的废弃的轨道上.他的面前是两个按钮,分别写着“F”和“B”. 小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退.按 ...
- 凑算式——第七届蓝桥杯C语言B组(省赛)第三题
原创 凑算式 B DEFA + --- + ------- = 10 C GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中A~I代表1~9的数字,不同的 ...
- 生日蜡烛——第七届蓝桥杯C语言B组(省赛)第二题
原创 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过生日 ...
- 煤球数目——第七届蓝桥杯C语言B组(省赛)第一题
原创 煤球数目 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球? 请填 ...
- 2016年第七届蓝桥杯省赛试题(JavaA组)
1.结果填空 (满分3分)2.结果填空 (满分5分)3.结果填空 (满分9分)4.代码填空 (满分11分)5.代码填空 (满分13分)6.结果填空 (满分15分)7.结果填空 (满分19分)8.程序设 ...
随机推荐
- 问题1:Oracle数据库监听启动失败(重启监听,提示The listener supports no services)
编辑监听文件:/home/DB/oracle/11gR2/db/network/admin/listener.ora 在文件内添加静态监听实例,如下内容: SID_LIST_LISTENER =(SI ...
- flask 登录验证码 字母和数字
captcha.py #!/usr/bin/env python# -*- coding: utf-8 -*- # refer to `https://bitbucket.org/akorn/whee ...
- PTA-栈
1-1 若一个栈的输入序列为1,2,3,…,N,输出序列的第一个元素是i,则第j个输出元素是j−i−1. (2分) T F 作者: DS课程组 单位: 浙江大学 1-2 若一个栈的 ...
- 新手学习之浅析一下c/c++中的指针
一.我们先来回忆一下指针的概念吧,方便下面的介绍 指针是存放地址值的变量或者常量.例如:int a=1;&a就表示指针常量(“&”表示取地址运算符,也即引用).int *b,b表示的是 ...
- 设置eclipse联想功能
当我们在用eclipse的时候,怎么能够让自己的编码速度加快?我想利用eclipse的提示功能是其中的方法之一.下面就利出配置eclipse联想功能(代码的提示功能)的步骤: 1. 打开Eclipse ...
- LimeSDR 上手指南
原文链接:https://mp.weixin.qq.com/s/so4XzPaYtzAvgbjarm_9fg 有问题可以在公众号或者这里留言
- C#递归遍历窗体所有textbox控件并设置textbox事件的方法
/// <summary> /// /// </summary> /// <param name="sender"></param> ...
- WEB学习笔记11-高可读性的HTML之如何设置网页标题层级
标题标签指的是<h1>~<h6>这6个标签,统称为<hx>标签. (1)在页面内容的标题部分使用<hx>标签 <h1 class="re ...
- 如何使用idea给系统平台添加子应用和应用的模块
1.添加模块smartcity-portal,由于模块是在smartcity-framework工程下的,所以按照图片所示添加 2.smartcity-portal模块添加完成后,由于portal-d ...
- 关于jetbrains系列产品2018.1.5以后的使用(crack)方法
产品请一律官网下载:https://www.jetbrains.com/ 我这里以JetBrains GoLand 2018.2.1为例说明下非付费的使用方法(若资金允许,请点击https://www ...