第五届蓝桥杯决赛 六角幻方

2023-11-20 12:59

本文主要是介绍第五届蓝桥杯决赛 六角幻方,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

把 1 2 3 ... 19 共19个整数排列成六角形状,如下:
    * * *
   * * * *
  * * * * *
   * * * * 
    * * *
要求每个直线上的数字之和必须相等。共有15条直线哦!

再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图【p1.png】,黄色一行为所求。

请你填写出中间一行的5个数字。数字间用空格分开。

这是一行用空格分开的整数,请通过浏览器提交答案,不要填写任何多余的内容(比如说明性的文字等)

//  全排列+剪枝  每行相等,算了一下,都等于38,所以第三个圆的值是10
public class Main {static int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 14, 16, 17, 18, 19 };public static void main(String[] args) {f(0, a.length - 1);}public static void f(int start, int end) {// 剪枝if (start == 4) {if (a[0] + a[1] + a[2] + a[3] != 38)return;} else if (start == 5) {if (15 + a[0] + a[4] != 38)return;} else if (start == 9) {if (a[4] + a[5] + a[6] + a[7] + a[8] != 38)return;if (10 + a[3] + a[8] != 38)return;} else if (start == 10) {if (13 + a[1] + a[5] + a[9] != 38)return;} else if (start == 13) {if (a[9] + a[10] + a[11] + a[12] != 38)return;if (13 + a[2] + a[7] + a[12] != 38)return;} else if (start == 14) {if (a[4] + a[9] + a[13] != 38)return;if (10 + a[2] + a[6] + a[10] + a[13] != 38)return;} else if (start == end) {if (a[0] + a[5] + a[10] + a[14] != 38)return;if (a[3] + a[7] + a[11] + a[14] != 38)return;if (a[13] + a[14] + a[15] != 38)return;if (15 + a[1] + a[6] + a[11] + a[15] != 38)return;if (a[8] + a[12] + a[15] != 38)return;for (int i = 4; i < 9; i++) {System.out.print(a[i] + " ");}}// 全排列for (int i = start; i <= end; i++) {{int temp = a[start];a[start] = a[i];a[i] = temp;}f(start + 1, end);{int temp = a[start];a[start] = a[i];a[i] = temp;}}}}//  答案:9 6 5 2 16 

 

这篇关于第五届蓝桥杯决赛 六角幻方的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/394784

相关文章

洛谷 P10584 [蓝桥杯 2024 国 A] 数学题(整除分块+杜教筛)

题目 思路来源 登录 - Luogu Spilopelia 题解 参考了两篇洛谷题解,第一篇能得出这个式子,第二篇有比较严格的复杂度分析 结合去年蓝桥杯洛谷P9238,基本就能得出这题的正确做法 代码 #include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<map>#include<uno

[第五空间2019 决赛]PWN5

参考文章: 格式化字符串漏洞原理及其利用(附带pwn例题讲解)_格式化字符串攻击教程-CSDN博客 格式化字符串漏洞原理详解_静态编译 格式化'字符串漏洞-CSDN博客 BUU pwn [第五空间2019 决赛]PWN5 //格式化字符串漏洞 - Nemuzuki - 博客园 (cnblogs.com) 栈溢出保护(cannary) 数据溢出保护(NX) 运行一下看看

2013年蓝桥杯试题解析(一)

1.猜年龄       美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。   一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:  “我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”  请你推算一下,他当时到底有多年轻。

计算最大数位-第13届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第87讲。 计算最大数位,本题是2022年4月23日举办的第13届蓝桥杯青少组Python编程省赛真题编程部分第2题,13届一共举办了两次省赛,这是第二次省赛。题目要求对于给定的正整数N,请编程计

蓝桥杯 经典算法题 找到给定字符串中的不同字符

题目: 在不考虑字符排列的条件下,对于相差只有一个字符的两个字符串,实现一个算法来识别相差的那个字符。要求如下: 当传入的字符串为 aad 和 ad 时,结果为 a。 当传入的字符串为 aaabccdd 和 abdcacade 时,结果为 e。 题解: 因为一定有一个字符不相同,将字符串内部排序然后依次比较,输出新增串中与原串不一样的那一位即可。这里遍历原串和新增串比较,不同输出新增

蓝桥杯经典算法题 确定字符串是否是另一个的排序

题目: 实现一个算法来识别一个字符串 str2 是否是另一个字符串 str1 的排列。排列的解释如下:如果将 str1 的字符拆分开,重新排列后再拼接起来,能够得到 str2 ,那么就说字符串 str2 是字符串 str1 的排列。(不忽略大小写) 如果 str2 字符串是 str1 字符串的排列,则输出 YES;如果 str2 字符串不是 str1 字符串的排列,则输出 NO; 题解:

蓝桥杯 经典算法题 压缩字符串

题目: 实现一个算法来压缩一个字符串。压缩的要求如下: 需要判断压缩能不能节省空间,仅在压缩后字符串比原字符串长度更短时进行压缩。 压缩的格式是将连续相同字符替换为字符 + 数字形式,例如 "AAABCCDDDD" 变为 "A3BC2D4"。 题解: 需要将字符串中相同字符叠在一起的部分压缩,也就是数出每一堆连在一起的相同字符的数量。 #include <iostream>usi

蓝桥杯基础训练完美的代价

思想: 运用了贪心的思想 从字符串的左面和右面开始匹配 保证了第一次到的相同字符距离左面的最近,然后将字符串的左面和右面字符去掉 匹配剩余的 一直进行下去 就会产生最终结果! 代码 #include<cstdio>const int maxn = 8001; char str[maxn];int parse(int len)//{int py;int ans1 = 0;int an

【长春理工大学主办 | EI检索稳定 | SPIE出版 | 过往4届均检索 】第五届计算机视觉和数据挖掘国际学术会议(ICCVDM 2024)

第五届计算机视觉和数据挖掘国际学术会议(ICCVDM 2024) 2024 5th International Conference on Computer Vision and Data Mining 会议简介 第五届计算机视觉与数据挖掘国际学术会议(ICCVDM 2024)将于2024年7月19-21日在中国长春举行。此前,ICCVDM系列会议于2020年在中国西安、2021年在中国长沙(

【无标题】蓝桥杯软件赛Java研究生组/A组)第二章基础算法-第四节:构造

构造类这种题目,比较开放、而且往往需要一些其他知识,往往就是读的时候感觉很麻烦抽象,但是看到答案后,又感觉非常简单这种题目没有必要死磕,有时间看看就行,总结总结 文章目录 一:什么是构造(1)概述(2)常见的构造题目类型 二:典型题目(1)题目一(2)题目二(3)题目三(4)题目四(5)题目五 一:什么是构造 (1)概述 构造:构造题在比赛和解决问题的过程中确实是常见的一类