
蓝桥杯算法训练
文章平均质量分 67
王什么纯
这个作者很懒,什么都没留下…
展开
-
生成1-n的排列(使用递归)
package suanfajingsai;import java.util.Scanner;//生成1-n的排列public class P184 { void print_permutation(int n,int a[],int cur){ if(cur==n){//递归的边界 int b=n; for(int i=0;i<n;i=i+b){ Syste原创 2018-02-06 13:57:17 · 508 阅读 · 0 评论 -
找出一个乘积最大的连续子序列
package suanfajingsai;import java.util.Scanner;/* * 输入n个元素组成的序列S,找出一个乘积最大的连续子序列。如果这个最大的乘积不是正数,输出0(表示无解)。 * 1<=n<=18,-10<=Si<=10。 案例: Sample Input 3 2 4 -3原创 2018-02-06 13:14:35 · 1282 阅读 · 0 评论 -
1/k=1/x+1/y
package suanfajingsai;import java.util.Scanner;/* * 现在输入一个正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y. 输入 第一行输入一个整数n,代表有n组测试数据。 接下来n行每行输入一个正整数k 输出 按顺序输出对应每行的k找到所有满足条件1/k=1/x+1/y的组合 样例输入 2 2 12 样例输原创 2018-02-05 22:04:09 · 4010 阅读 · 0 评论 -
abcde/fghij=n
import java.util.Arrays;import java.util.Scanner;/* * 1.输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<=79。 样例输入:62 样例输出:79546 / 01283 = 62 94736 / 01528 = 62 【分析】 枚原创 2018-02-05 20:40:26 · 3099 阅读 · 1 评论 -
l蓝桥杯:求第100002个素数
这道题本身是靠通过筛选法求素数,然后他要求的第100002个素数,就比较尴尬了,还需要你懂得估算素数的分布公式。/*筛到第x个素数,需要数组准备多大? 素数分布定理:不大于n的素数的个数为:n / ln(n) double t = 100; while(t / Math.log(t) < x) t *= 1.1; System.out.println(t); */啊开辟一...原创 2018-05-18 20:06:18 · 1978 阅读 · 0 评论 -
蓝桥杯:博弈问题——取球输赢判断
博弈问题一直是我的痛点,呜呜呜……一直都是从入门到入门啊package five;public class quqiu { static boolean fun(int n){ //n球的个数 //true 一定赢 false 一定输 //递归的出口 随着n的递减,如果一个球都不剩了,肯定是对方取走了最后的求,那我一定赢 if(n==0) return ...原创 2018-05-20 15:21:40 · 387 阅读 · 0 评论 -
蓝桥杯:填字母游戏(第八届决赛javaB第五题)——博弈+递归+回溯
标题:填字母游戏小明经常玩 LOL 游戏上瘾,一次他想挑战K大师,不料K大师说:“我们先来玩个空格填字母的游戏,要是你不能赢我,就再别玩LOL了”。K大师在纸上画了一行n个格子,要小明和他交替往其中填入字母。并且:1. 轮到某人填的时候,只能在某个空格中填入L或O2. 谁先让字母组成了“LOL”的字样,谁获胜。3. 如果所有格子都填满了,仍无法组成LOL,则平局。小明试验...原创 2018-05-20 20:18:49 · 1048 阅读 · 1 评论 -
蓝桥杯:excel地址
这一题就是进制转换的进阶版吧……题目:Excel单元格的地址表示很有趣,它使用字母来表示列号,比如:A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,....当然Excel的最大列号是有限度的,所以转换起来不难。如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?本题目既是要求对输入的数字, 输出其对应的Exc...原创 2018-05-21 14:28:11 · 640 阅读 · 0 评论 -
蓝桥杯:国庆节是星期几
1949年的国庆节(10月1日)是星期六。 今年(2012)的国庆节是星期一。那么,从建国到现在,有几次国庆节正好是星期日呢?只要答案,不限手段!可以用windows日历,windows计算器,Excel公式,。。。。。当然,也可以编程!package five;/* * 1949年的国庆节(10月1日)是星期六。 今年(2012)的国庆节是星期一。 那么,从建国到现在,有几...原创 2018-05-21 14:54:37 · 1279 阅读 · 0 评论 -
蓝桥杯:火柴游戏(经典的博弈算法)
题目:这是一个纵横火柴棒游戏。如图1,在3x4的格子中,游戏的双方轮流放置火柴棒。其规则是:1. 不能放置在已经放置了火柴棒的地方(即只能在空格中放置)。2. 火柴棒的方向只能是竖直或水平放置。3. 火柴棒不能与其它格子中的火柴“连通”。所谓连通是指两根火柴棒可以连成一条直线,且中间没有其它不同方向的火柴“阻拦”。例如:图1所示的局面下,可以在C2位置竖直放置(为了方便描述格子位置...原创 2018-05-21 22:48:18 · 1088 阅读 · 0 评论 -
蓝桥杯:二分查找的应用
已知有序的序列,比如:2,3,3,5,9,9,9,12,12,13,15,22,22,22,22,25,25,23,91,95有整数x,比如: x=23要求找到一个刚好比x稍微大一点的元素位置当数组较大的时候,需要二分查找加快速度。对于没有进行从小到大排序的数组,要先进行排序。这里有一个Arrays类自带的排序函数,sort方法。可以直接对数组进行排序。int[] a = {1,5,102,114...原创 2018-05-22 10:05:33 · 490 阅读 · 0 评论 -
第八届蓝桥杯:平方十位数
题目:由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。这其中也有很多恰好是平方数(是某个数的平方)。比如:1026753849,就是其中最小的一个平方数。请你找出其中最大的一个平方数是多少?注意:你需要提交的是一个10位数字,不要填写任何多余内容。思路:这道题其实并不难,但是一开始由于我把思路局限在对数字的排列组合上,在对99999以内的数字进行平方,然后进行判断是否相等,导致数据量很...原创 2018-05-15 22:27:19 · 543 阅读 · 0 评论 -
第八届蓝桥杯:树型显示
题目:标题:树形显示对于分类结构可以用树形来形象地表示。比如:文件系统就是典型的例子。树中的结点具有父子关系。我们在显示的时候,把子项向右缩进(用空格,不是tab),并添加必要的连接线,以使其层次关系更醒目。下面的代码就是为了这个目的的,请仔细阅读源码,并填写划线部分缺少的代码。之前参加一些考试也做过类似的程序填空题吧,主要的技巧我觉得就是一层一层的找方法。这道题稍微好一点,方法虽然多,但是题目给...原创 2018-05-15 22:34:43 · 298 阅读 · 0 评论 -
蓝桥杯:五星填数(全排列的扩展应用)
标题:五星填数如【图1.png】的五星图案节点填上数字:1~12,除去7和11。要求每条直线上数字和相等。如图就是恰当的填法。请你利用计算机搜索所有可能的填法有多少种。注意:旋转或镜像后相同的算同一种填法。请提交表示方案数目的整数,不要填写任何其它内容。这道题乍一看仿佛形状奇特,无从下手。但是好在最近是刷题阶段,所以我联想到了第七届的第二题——反幻方。和这道题十分类似,基本的思路都是对整数数组进行...原创 2018-05-24 18:05:42 · 896 阅读 · 0 评论 -
蓝桥杯:最大公约、最小公倍数——欧几里得定理
package four;public class gcd_lcm { /* * 求最大公约数 最小公倍数 * 思路:根据欧几里得定理 gcd(a,b)=gcd(b,a%b); */ static int gcd(int a,int b){ //出口:b=0;5和0的最大公约数是5 if(b==0) return a; return gcd(b,a%b); }...原创 2018-05-18 13:10:41 · 243 阅读 · 0 评论 -
蓝桥杯:天平称重解法补充——进制
package four;public class tianping_jinzhi { /* * 用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。 如果只有5个砝码,重量分别是1,3,9,27,81 则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。 本题目要求编程实现:对用户给定的重量,给出砝码组合方案。 例如: 用户输入...原创 2018-05-18 10:38:42 · 337 阅读 · 0 评论 -
算法训练 最大最小公倍数
package suanfaxunlian;import java.util.Scanner;/* * 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式 输入一个正整数N。 输出格式 输出一个整数,表示你找到的最小公倍数。 样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 106。 */原创 2018-02-04 18:17:32 · 159 阅读 · 0 评论 -
蓝桥杯:反转字符串
一个字符串进行反转并输出 package two_digui;public class test2 { public static String revers(String s){ if(s.length()<=1){ return s; } return revers(s.substring(1))+s.charAt(0); } public static...原创 2018-05-01 16:01:20 · 290 阅读 · 0 评论 -
蓝桥杯:振兴中华
小明参加了学校的趣味运动会,其中的一个项目是:跳格子。地上画着一些格子,每个格子里写一个字,如下所示:(也可参见下图)从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。要求跳过的路线刚好构成“从我做起振兴中华”这句话。请你帮助小明算一算他一共有多少种可能的跳跃路线呢?packa...原创 2018-05-01 16:47:59 · 106 阅读 · 0 评论 -
蓝桥杯:算式填符号
匪警请拨110,即使手机欠费也可拨通!为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!某批警察叔叔正在进行智力训练:1 2 3 4 5 6 7 8 9 = 110请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12+34+56+7-8+9 就是一种...原创 2018-05-03 15:50:21 · 493 阅读 · 0 评论 -
蓝桥杯:出站次序
package two_digui;/* * X星球特别讲究秩序,所有道路都是单行线。一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。路边有个死胡同,只能容一辆车通过,是临时的检查站,如图所示。X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。如果车辆进入检查站和离开的次序可以任意交错。那么,该车队再次上路后,可能的次序有多少种...原创 2018-05-03 16:19:31 · 222 阅读 · 0 评论 -
蓝桥杯:已知不同字母构成的串,求它的全排列
已知不同字母构成的串,求它的全排列package three;import java.util.List;import java.util.Vector;public class quanpailie { static List<String> f(String s){ List<String> lst=new Vector<String>(...原创 2018-05-04 10:22:04 · 636 阅读 · 0 评论 -
蓝桥杯:搭积木
小明最近喜欢搭数字积木。一共有10块积木,每个积木上有一个数字,0~9。搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。最后搭成4层的金字塔形,必须用完所有的积木。下面是两种合格的搭法: 0 1 2 3 4 56 7 8 9 0 3 1 7 5 29 8 6 4 请你计算这样的搭法一共有多少种?当数据较少的时候 可以直接用暴力破解package th...原创 2018-05-04 11:24:09 · 740 阅读 · 0 评论 -
第七届蓝桥杯:反幻方
反幻方我国古籍很早就记载着2 9 47 5 36 1 8是一个三阶幻方。每行每列以及对角线上的数字相加都相等。下面考虑一个相反的问题。可不可以用 1~9 的数字填入九宫格。使得:每行每列每个对角线上的数字和都互不相等呢?这应该能做到。比如:9 1 28 4 37 5 6你的任务是搜索所有的三阶反幻方。并统计出一共有多少种。旋转或镜像算同一种。比如:9 1 28 4 37 5 67 8 95 4 1...原创 2018-05-17 13:24:11 · 1164 阅读 · 3 评论 -
第七届蓝桥杯:小明打靶
打靶小明参加X星球的打靶比赛。比赛使用电子感应计分系统。其中有一局,小明得了96分。这局小明共打了6发子弹,没有脱靶。但望远镜看过去,只有3个弹孔。显然,有些子弹准确地穿过了前边的弹孔。不同环数得分是这样设置的:1,2,3,5,10,20,25,50那么小明的6发子弹得分都是多少呢?有哪些可能情况呢?下面的程序解决了这个问题。仔细阅读分析代码,填写划线部分缺失的内容。package dibajie...原创 2018-05-17 13:39:46 · 700 阅读 · 0 评论 -
蓝桥杯:从m个球中取出n个球的问题
package three;/* * 有重复的字母中求取出m个所有组合例如: "AAABBCCCCCCDD" 中取3个字母的所有组合在m个球中取出n个球 有几种取法 */public class quqiu { static int fun(int m,int n){ //递归的出口 if(m==n) return 1; if(n==0) return 1;...原创 2018-05-17 14:29:27 · 1781 阅读 · 0 评论 -
蓝桥杯:从ABCDE五个字母中取出三个 有多少种组合
package three;public class zuhe {/* * 从ABCDE五个字母中取出三个 有多少种组合 */ public static void main(String[] args) { int num=0; for(char i='A';i<='E';i++){ for(char j=(char) (i+1);j<='E';j++){...原创 2018-05-17 14:38:37 · 5546 阅读 · 2 评论 -
蓝桥杯:扑克牌AA223344的排列问题
* A A 2 2 3 3 4 4, 一共4对扑克牌。请你把它们排成一行。 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌。 请填写出所有符合要求的排列中,字典序最小的那个。 例如:22AA3344 比 A2A23344 字典序小。当然,它们都不是满足要求的答案。 */package three;import java.util.ArrayLi...原创 2018-05-17 16:11:23 · 3355 阅读 · 0 评论 -
蓝桥杯:奇怪的捐赠
哎呀这个题,我就知道肯定不是暴力破解出来的,但还是练习了一把循环。我的天咯,看到答案的时候,我是比较懵逼的因为我上学以来一直觉得进制是个神奇的东西,所以还是暴力破解万岁吧~package four;/*地产大亨Q先生临终的遗愿是:拿出100万元给X社区的居民抽奖,以稍慰藉心中愧疚。麻烦的是,他有个很奇怪的要求:1. 100万元必须被正好分成若干份(不能剩余)。 每份必须是7的若干次方元...原创 2018-05-17 20:20:35 · 660 阅读 · 0 评论 -
蓝桥杯:砝码称重
用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。 如果只有5个砝码,重量分别是1,3,9,27,81 则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。 本题目要求编程实现:对用户给定的重量,给出砝码组合方案。 例如: 用户输入: 5 程序输出: 9-3-1 用户输入: 19 程序输出: 27-9+1 要求程序输出的组合总是大数在前小数在后。 可以假设用户...原创 2018-05-17 22:05:34 · 937 阅读 · 0 评论 -
蓝桥杯算法训练01区间K大数
package suanfaxunlian;/* * 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式 第一行包含一个数n,表示序列长度。 第二行包含n个正整数,表示给定的序列。 第三个包含一个正整数m,表示询问个数。 接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列原创 2018-02-04 17:50:17 · 155 阅读 · 0 评论