剪邮票

如【图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组 第七题剪邮票的更多相关文章

  1. 第七届蓝桥杯省赛JavaB组——第十题压缩变换

    题目: 压缩变换小明最近在研究压缩算法.他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比.然而,要使数值很小是一个挑战.最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面 ...

  2. 第十届蓝桥杯省赛JavaB组个人题解

    前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...

  3. 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

    2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...

  4. 2016年第七届蓝桥杯C/C++B组省赛题目解析

    题目1:煤球数目 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填 ...

  5. 一步之遥——第七届蓝桥杯C语言B组(国赛)第一题

    原创 一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里.矿车停在平直的废弃的轨道上.他的面前是两个按钮,分别写着“F”和“B”. 小明突然记起来,这两个按钮可以控制矿车在轨道上前进和后退.按 ...

  6. 凑算式——第七届蓝桥杯C语言B组(省赛)第三题

    原创 凑算式 B      DEFA + --- + ------- = 10       C      GHI (如果显示有问题,可以参见[图1.jpg]) 这个算式中A~I代表1~9的数字,不同的 ...

  7. 生日蜡烛——第七届蓝桥杯C语言B组(省赛)第二题

    原创 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过生日 ...

  8. 煤球数目——第七届蓝桥杯C语言B组(省赛)第一题

    原创 煤球数目 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球? 请填 ...

  9. 2016年第七届蓝桥杯省赛试题(JavaA组)

    1.结果填空 (满分3分)2.结果填空 (满分5分)3.结果填空 (满分9分)4.代码填空 (满分11分)5.代码填空 (满分13分)6.结果填空 (满分15分)7.结果填空 (满分19分)8.程序设 ...

随机推荐

  1. MySQL 把两个结果集拼接到一起(两个结果集的列一模一样)

    select * from a UNION all ( select * from b)

  2. JAVA中String类型的字符替换问题

    如果仅仅替换某个字符,使用replaceall("xx","")即可,其中.的替换要使用\\.否则会替换除换行符外的所有字符. 如果要替换所有特殊字符(即非字母 ...

  3. code about led_shake

    //write by:cyt //Project Name:Led on/off //Time:2017-2-10 #include<reg51.h> void delay(int c) ...

  4. python爬虫教程实践1——安装scrapy

    系统:macOS Sierra 10.12.6 python版本:3.6 1.安装homebrew(以前的环境配置中有介绍过) 官网:http://brew.sh/index_zh-cn.html 2 ...

  5. Jenkins使用QQ邮箱构建邮件提醒服务

    前置条件: 已安装好Jenkins服务端 步骤: 访问Jenkins服务端(ip+端口),登录Jenkins 点击系统管理 选择管理插件 选择可选插件 搜索Mailer Plugin 点击直接安装 点 ...

  6. java排序 冒泡?+插入排序

    冒泡.public class insortSort { public static void main(String[] args) { int[] arr = {12, 3, 4, 55, 36, ...

  7. .net 客户端调用java或.net webservice进行soapheader验证

    .net 客户端调用java或.net webservice进行soapheader验证 最近项目中有业务需要跨平台调用web服务,客户端和服务器之间采用非对称加密来保证数据的安全性,webservi ...

  8. Feign源码解析系列-注册套路

    感谢不知名朋友的打赏,感谢你的支持! 开始 在追寻Feign源码的过程中发现了一些套路,既然是套路,就可以举一反三,所以值得关注. 这篇会详细解析Feign Client配置和初始化的方式,这些方式大 ...

  9. 【EMV L2】终端验证结果(Terminal Verification Results,TVR)

    终端验证结果,Terminal Verification Results(TVR),Tag95,5bytes: 记录交易过程中,数据认证.处理限制.持卡人验证.终端风险管理.行为分析以及联机处理的结果 ...

  10. Docker CE安装

    #添加账户docker useradd docker passwd docker (密码docker) #设置sudo权限 visudo root ALL=(ALL) ALL 后添加一行: docke ...