java实现第五届蓝桥杯锦标赛】的更多相关文章

锦标赛 这题小编能力有限,还望大佬解决 题目描述 如果要在n个数据中挑选出第一大和第二大的数据(要求输出数据所在位置和值),使用什么方法比较的次数最少?我们可以从体育锦标赛中受到启发. 如图[1.png]所示,8个选手的锦标赛,先两两捉对比拼,淘汰一半.优胜者再两两比拼...直到决出第一名. 第一名输出后,只要对黄色标示的位置重新比赛即可. 下面的代码实现了这个算法(假设数据中没有相同值). 代码中需要用一个数组来表示图中的树(注意,这是个满二叉树, 不足需要补齐).它不是存储数据本身,而是存储…
殖民地 带着殖民扩张的野心,Pear和他的星际舰队登上X星球的某平原.为了评估这块土地的潜在价值,Pear把它划分成了M*N格,每个格子上用一个整数(可正可负)表示它的价值. Pear要做的事很简单--选择一些格子,占领这些土地,通过建立围栏把它们和其它土地隔开.对于M*N的格子,一共有(M+1)N+M(N+1)条围栏,即每个格子都有上下左右四个围栏:不在边界上的围栏被相邻的两个格子公用.大概如下图[p1.png]所示. 图中,蓝色的一段是围栏,属于格子1和2:红色的一段是围栏,属于格子3和4.…
LOG大侠 atm参加了速算训练班,经过刻苦修炼,对以2为底的对数算得飞快,人称Log大侠. 一天,Log大侠的好友 drd 有一些整数序列需要变换,Log大侠正好施展法力- 变换的规则是: 对其某个子序列的每个整数变为: [log_2 (x) + 1] 其中 [] 表示向下取整,就是对每个数字求以2为底的对数,然后取下整. 例如对序列 3 4 2 操作一次后,这个序列会变成 2 3 2. drd需要知道,每次这样操作后,序列的和是多少. [输入格式] 第一行两个正整数 n m . 第二行 n…
生物芯片 X博士正在研究一种生物芯片,其逻辑密集度.容量都远远高于普通的半导体芯片. 博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮. 这些光源的编号从 1 到 n,开始的时候所有光源都是关闭的. 博士计划在芯片上执行如下动作: 所有编号为2的倍数的光源操作一次,也就是把 2 4 6 8 - 等序号光源打开 所有编号为3的倍数的光源操作一次, 也就是对 3 6 9 - 等序号光源操作,注意此时6号光源又关闭了. 所有编号为4的倍数的光源操作一…
供水设施 X星球的居民点很多.Pear决定修建一个浩大的水利工程,以解决他管辖的N个居民点的供水问题.现在一共有N个水塔,同时也有N个居民点,居民点在北侧从1号到N号自西向东排成一排:水塔在南侧也从1号到N号自西向东排成一排. N条单向输水线(有水泵动力),将水从南侧的水塔引到北侧对应的居民点. 我们不妨将居民点和水塔都看做平面上的点,居民点坐标为(1,K)(N,K),水塔为(1,0)(N,0). 除了N条纵向输水线以外,还有M条单向的横向输水线,连接(Xi,Yi)和(Xi,(Yi)+1)或者(…
排列序数 如果用a b c d这4个字母组成一个串,有4!=24种,如果把它们排个序,每个串都对应一个序号: abcd 0 abdc 1 acbd 2 acdb 3 adbc 4 adcb 5 bacd 6 badc 7 bcad 8 bcda 9 bdac 10 bdca 11 cabd 12 cadb 13 cbad 14 cbda 15 cdab 16 cdba 17 - 现在有不多于10个两两不同的小写字母,给出它们组成的串,你能求出该串在所有排列中的序号吗? [输入格式] 一行,一个串…
幂一矩阵 天才少年的邻居 atm 最近学习了线性代数相关的理论,他对"矩阵"这个概念特别感兴趣.矩阵中有个概念叫做幂零矩阵.对于一个方阵 M ,如果存在一个正整数 k 满足 M^k = 0 ,那么 M 就是一个幂零矩阵.(^ 表示乘方) atm 不满足幂零矩阵,他自己设想了一个幂一矩阵:对于一个方阵 M ,如果存在一个正整数 k 满足 M^k = I ,其中 I 是单位矩阵,那么 M 就是一个幂一矩阵. atm 特别钟情于这样一种方阵:每行每列有且仅有一个 1 .经过 atm 不断实验…
斐波那契 标题:斐波那契 斐波那契数列大家都非常熟悉.它的定义是: f(x) = 1 .... (x=1,2) f(x) = f(x-1) + f(x-2) .... (x>2) 对于给定的整数 n 和 m,我们希望求出: f(1) + f(2) + ... + f(n) 的值.但这个值可能非常大,所以我们把它对 f(m) 取模. 公式参见[图1.png] 但这个数字依然很大,所以需要再对 p 求模. [数据格式] 输入为一行用空格分开的整数 n m p (0 < n, m, p < 1…
神奇算式 题目描述 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成. 比如: 210 x 6 = 1260 8 x 473 = 3784 27 x 81 = 2187 都符合要求. 如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式. 请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式). package mec.lanqiao; import java.util.*; public class Main…
扑克序列 AA223344,一共4对扑克牌.请你把它们排成一行. 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌. 4A3A2432, 2342A3A4 请填写出所有符合要求的排列中,字典序最小的那个. 例如: 22AA3344 比 A2A23344 字典序小.当然,它们都不是满足要求的答案. 请通过浏览器提交答案."A"一定不要用小写字母a,也不要用"1"代替.字符间一定不要留空格. [解析]:自己把可能的情况写写即可 [答案…
切面条 一根高筋拉面,中间切一刀,可以得到2根面条. 如果先对折1次,中间切一刀,可以得到3根面条. 如果连续对折2次,中间切一刀,可以得到5根面条. 那么,连续对折10次,中间切一刀,会得到多少面条呢? 答案是个整数,请通过浏览器提交答案.不要填写任何多余的内容. [解析]:可以拿张纸自己撕一下 n 0 1 2 3 4 - sum 2 3 5 9 17 - 每次相加的都是2的整数次幂. [答案]1025 [代码]: import java.util.*; public class Main {…
奇怪的分式 题目描述 上小学的时候,小明经常自己发明新算法.一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png) 老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼! 对于分子.分母都是 1~9 中的一位数的情况,还有哪些算式可以这样计算呢? 请写出所有不同算式的个数(包括题中举例的). 显然,交换分子分母后,例如:4/1 乘以 5/8 是满足要求的,这算做不同的算式. 但对于分子分母相同的情况,2/2 乘以 3/3…
信号匹配 从X星球接收了一个数字信号序列. 现有一个已知的样板序列.需要在信号序列中查找它首次出现的位置.这类似于串的匹配操作. 如果信号序列较长,样板序列中重复数字较多,就应当注意比较的策略了.可以仿照串的KMP算法,进行无回溯的匹配.这种匹配方法的关键是构造next数组. next[i] 表示第i项比较失配时,样板序列向右滑动,需要重新比较的项的序号.如果为-1,表示母序列可以进入失配位置的下一个位置进行新的比较. 下面的代码实现了这个功能,请仔细阅读源码,推断划线位置缺失的代码. // 生…
出栈次序 X星球特别讲究秩序,所有道路都是单行线.一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行. 路边有个死胡同,只能容一辆车通过,是临时的检查站,如图[p1.png]所示. X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查. 如果车辆进入检查站和离开的次序可以任意交错.那么,该车队再次上路后,可能的次序有多少种? 为了方便起见,假设检查站可容纳任意数量的汽车. 显然,如果车队只有1辆车,可能次序1种:2辆车可能次序2种:3辆车可能次序5…
年龄巧合 小明和他的表弟一起去看电影,有人问他们的年龄.小明说:今年是我们的幸运年啊.我出生年份的四位数字加起来刚好是我的年龄.表弟的也是如此.已知今年是2014年,并且,小明说的年龄指的是周岁. 请推断并填写出小明的出生年份. 这是一个4位整数,请通过浏览器提交答案,不要填写任何多余的内容(比如,他表弟的出生年份,或是他们的年龄等等) 1988 public class Main { public static void main(String[] args) { for(int i = 19…
格子放鸡蛋 X星球的母鸡很聪明.它们把蛋直接下在一个 N * N 的格子中,每个格子只能容纳一枚鸡蛋.它们有个习惯,要求:每行,每列,以及每个斜线上都不能有超过2个鸡蛋.如果要满足这些要求,母鸡最多能下多少蛋呢,有多少种摆放方法呢? 下面的程序解决了这个问题,请仔细分析程序逻辑,推断划线处缺少的代码. public class A { static int max = 0; static int T = 0; static final int N = 6; // 只能在(r,c) 以及其右,其下…
六角幻方 里面的*在编写的时候会自动编译成线,这里就用代码的格式把题目弄过来 把 1 2 3 ... 19 共19个整数排列成六角形状,如下: * * * * * * * * * * * * * * * * * * * 要求每个直线上的数字之和必须相等.共有15条直线哦! 再给点线索吧!我们预先填好了2个数字,第一行的头两个数字是:15 13,参见图[p1.png],黄色一行为所求. 请你填写出中间一行的5个数字.数字间用空格分开. 这是一行用空格分开的整数,请通过浏览器提交答案,不要填写任何多…
海盗分金币 有5个海盗,相约进行一次帆船比赛. 比赛中天气发生突变,他们被冲散了. 恰巧,他们都先后经过途中的一个无名的荒岛,并且每个人都信心满满,觉得自己是第一个经过该岛的人. 第一个人在沙滩上发现了一堆金币.他把金币分成5等份.发现刚好少一个金币.他就从自己口袋拿出一个金币补充进去,然后把属于自己的那份拿走. 第二个到达的人也看到了金币,他也和第一个人一样,把所有金币5等分,发现刚好缺少一个金币,于是自己补进去一个,拿走了属于自己的那份. 第三,第四,第五人的情况一模一样. 等他们到了目的地…
绳圈 题目描述 今有 100 根绳子,当然会有 200 个绳头. 如果任意取绳头两两配对,把所有绳头都打结连接起来.最后会形成若干个绳圈(不考虑是否套在一起). 我们的问题是:请计算最后将形成多少个绳圈的概率最大? 注意:结果是一个整数,请通过浏览器提交该数字.不要填写多余的内容. public class Main { public static void main(String[] args) { double[][] dp = new double[101][101]; dp[1][1]…
六角填数 题目描述 如图[1.png]所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多余的内容. public class Hex_FillNum { // 把12个格子放入数组 static int arr[] = new int[12]; // 数组标记,0为无,1为有 static int flag[] = new int[12]; // 放存每条直线的和 static…
圆周率 数学发展历史上,圆周率的计算曾有许多有趣甚至是传奇的故事.其中许多方法都涉及无穷级数. 图1.png中所示,就是一种用连分数的形式表示的圆周率求法. 下面的程序实现了该求解方法.实际上数列的收敛对x的初始值 并不敏感. 结果打印出圆周率近似值(保留小数点后4位,并不一定与圆周率真值吻合). double x = 111; for(int n = 10000; n>=0; n--){ int i = 2 * n + 1; x = 2 + (i*i / x); } System.out.pr…
武功秘籍 小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的).他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上. 小明只想练习该书的第81页到第92页的武功,又不想带着整本书.请问他至少要撕下多少张纸带走? 这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容. [解析]:带走的页数(80,81)(82,83)(84,85)(86,87)(88,89)(90,91)(92,93) [答案]:7…
写日志 写日志是程序的常见任务.现在要求在 t1.log, t2.log, t3.log 三个文件间轮流 写入日志.也就是说第一次写入t1.log,第二次写入t2.log,... 第四次仍然 写入t1.log,如此反复. 下面的代码模拟了这种轮流写入不同日志文件的逻辑. public class A { private static int n = 1; public static void write(String msg) { String filename = "t" + n +…
李白打酒 题目描述 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了. 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b.则:babaabbabbabbbb 就是合理的次序.像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的). 注意:通过浏览器提交答案.答案是个整数.不要书写任…
猜字母 题目描述 把abcd-s共19个字母组成的序列重复拼接106次,得到长度为2014的串. 接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母. 得到的新串再进行删除奇数位置字母的动作.如此下去,最后只剩下一个字母,请写出该字母. 答案是一个小写字母,请通过浏览器提交答案.不要填写任何多余的内容. public class Main { public static void main(String[] args) { double sum = 0; for (i…
大衍数列 中国古代文献中,曾记载过"大衍数列", 主要用于解释中国传统文化中的太极衍生原理. 它的前几项是:0.2.4.8.12.18.24.32.40.50 ... 其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2. 以下的代码打印出了大衍数列的前 100 项. for(int i=1; i<100; i++) { if(________________) //填空 System.out.println(i*i/2); else System.out.prin…
等额本金 题目描述 小明从银行贷款3万元.约定分24个月,以等额本金方式还款. 这种还款方式就是把贷款额度等分到24个月.每个月除了要还固定的本金外,还要还贷款余额在一个月中产生的利息. 假设月利率是:0.005,即:千分之五.那么, 第一个月,小明要还本金 1250, 还要还利息:30000 * 0.005,总计 1400 第二个月,本金仍然要还 1250, 但利息为:(30000-1250) * 0.005 总计 1393.75 请问:小明在第15个月,应该还款多少(本金和利息的总和)? 请…
猜年龄 题目描述 小明带两个妹妹参加元宵灯会.别人问她们多大了,她们调皮地说:"我们俩的年龄之积是年龄之和的6倍".小明又补充说:"她们可不是双胞胎,年龄差肯定也不超过8岁啊." 请你写出:小明的较小的妹妹的年龄. 注意: 只写一个人的年龄数字,请通过浏览器提交答案.不要书写任何多余的内容. public class Guess_Age { public static void main(String[] args) { int age_small = 0; int…
目录 1 海盗分金币 2 六角幻方 3 格子放鸡蛋 4 排列序数 5 幂一矩阵 6 供水设施    前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 海盗分金币 有5个海盗,相约进行一次帆船比赛. 比赛中天气发生突变,他们被冲散了. 恰巧,他们都先后经过途中的一个无名的荒岛,并且每个人都信心满满,觉得自己是第一个经过该岛的人. 第一个人在沙滩上发现了一堆金币.他把金币分成5等份.发现刚好少一个金币.他就从自己口袋拿出一个金币补充进去,然后把属于自己的那份拿走. 第二个到达的人也看到了金币,他也和…
小明用积木搭了一个城堡. 为了方便,小明在搭的时候用的是一样大小的正方体积本,搭在了一个 n 行 m 列的方格图上,每个积木正好占据方格图的一个小方格. 当然,小明的城堡并不是平面的,而是立体的.小明可以将积木垒在别的积木上面.当一个方格上的积木垒得比较高时,就是一个高塔, 当一个方格上没有积木时,就是一块平地. 小明的城堡可以用每个方格上垒的积木层数来表示.例如,下面就表示一个城堡. 9 3 3 1 3 3 3 0 0 0 0 0 这个城堡南面和东面都有空地,西北面有一个大房子,在西北角还有一…