蓝桥杯
文章平均质量分 50
记录了我的蓝桥杯刷题历程
Zyy~
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!
展开
-
《蓝桥杯》蓝桥杯研究生A组复习(代码经过测试,可以完美运行)
1.Eclipse自动提示快捷键设置2.输入输出public static void main(String[] args) throws IOException { //第一种 int m,n,k; long l; /* Scanner cin=new Scanner(System.in); m=cin.nextInt(); l=cin.nextLong(); System.out.println(m+" "+l); cin.close(); */ /原创 2021-04-17 17:24:11 · 703 阅读 · 0 评论 -
蓝桥杯竞赛知识点总结 距离蓝桥杯10天,附八皇后java代码实现(dfs 回溯)
上次裸考蓝桥杯c++,只拿了个省三,遗憾无限~这一次无论如何都要弥补一下,emmm,算是对我大学时光的纪念吧。。。话不多说:蓝桥杯java重点枚举以及优化 递归(回溯,剪枝):八皇后,全排列 dfs ,bfs,二分查找 过程模拟//水题 枚举,搜索,模拟 动态规划 dp 并查集枚举常见优化套路:减少枚举变量缩小枚举范围二分查找空间换时间:hash...原创 2019-03-14 17:04:53 · 1159 阅读 · 0 评论 -
蓝桥杯 历届试题 分考场 java实现 dfs 回溯
问题描述 n个人参加某项特殊考试。 为了公平,要求任何两个认识的人不能分在同一个考场。 求是少需要分几个考场才能满足条件。输入格式 第一行,一个整数n(1<n<100),表示参加考试的人数。 第二行,一个整数m,表示接下来有m行数据 以下m行每行的格式为:两个整数a,b,用空格分开 (1<=a,b<=n) 表示第a个人与第b个人认识。输出...原创 2019-03-04 19:38:26 · 1046 阅读 · 0 评论 -
蓝桥杯 历届试题 青蛙跳杯子 java bfs 实现 其中包括java字符串某两个元素交换位置
问题描述 X星球的流行宠物是青蛙,一般有两种颜色:白色和黑色。 X星球的居民喜欢把它们放在一排茶杯里,这样可以观察它们跳来跳去。 如下图,有一排杯子,左边的一个是空着的,右边的杯子,每个里边有一只青蛙。 *WWWBBB 其中,W字母表示白色青蛙,B表示黑色青蛙,*表示空杯子。 X星的青蛙很有些癖好,它们只做3个动作之一: 1. 跳到相邻的空杯子里。 2. 隔着1只...原创 2019-03-14 19:42:46 · 510 阅读 · 0 评论 -
快速幂 c++
转自:http://www.cnblogs.com/CXCXCXC/p/4641812.html 快速幂这个东西比较好理解,但实现起来到不老好办,记了几次老是忘,今天把它系统的总结一下防止忘记。 首先,快速幂的目的就是做到快速求幂,假设我们要求a^b,按照朴素算法就是把a连乘b次,这样一来时间复杂度是O(b)也即是O(n)级别,快速幂能做到O(logn),快了好多好多。它的原理如...转载 2019-03-19 17:13:31 · 462 阅读 · 0 评论 -
蓝桥杯历届试题 对局匹配 100分 并解释50分原因 java实现
问题描述 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是K的两名用户匹配在一起。如果两人分差小于或大于K,系统都不会将他们匹配。 现在小明知道这个网站总共有N名用户,以及他们的积分分别是A1, A2, ... AN。 小明想了解最多可能有多少名用户同时在线寻找对手,但是系统...原创 2019-03-11 19:33:57 · 333 阅读 · 0 评论 -
2017年蓝桥杯javab组之日期问题(运用TreeSet和日期格式转换SimpleDateFormat)
问题描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。 比如02/03/04,可能是2002年03月04日、2004年0...原创 2019-03-20 12:43:48 · 290 阅读 · 0 评论 -
蓝桥杯 算法提高 矩阵乘法 java90分版,c++100分版
问题描述 有n个矩阵,大小分别为a0*a1, a1*a2, a2*a3, ..., a[n-1]*a[n],现要将它们依次相乘,只能使用结合率,求最少需要多少次运算。 两个大小分别为p*q和q*r的矩阵相乘时的运算次数计为p*q*r。输入格式 输入的第一行包含一个整数n,表示矩阵的个数。 第二行包含n+1个数,表示给定的矩阵。输出格式 输出一个整数,表示最少的运算...原创 2019-03-12 11:35:28 · 376 阅读 · 0 评论 -
谈谈最短路的几种算法 (Dijkstra,spfa,floyd) 并附上蓝桥杯 最短路的代码实现
最短路作为算法入门的基本问题之一,大一开始学的时候也是稀里糊涂的,现在博主在大三上学了算法分析后,对这几种算法有了新的理解与认识,于是总结如下,希望能对自己以后的复习还有刚开始入坑算法的萌新们一点帮助。首先,Dijkstra算法:适用范围: 边的权值非负,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的。具体流程: 一遍dijkst...原创 2019-03-13 12:14:04 · 611 阅读 · 1 评论 -
蓝桥杯 2016年javaB组原题剪邮票 (bfs+暴力迭代)
剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。解析:因为只有十二个元素,所以可以暴力循环,嵌套五层for循环找到5个元素 ,将这些点转化为图3行4列,行数等于i/4 列数...原创 2019-03-18 22:42:06 · 414 阅读 · 0 评论 -
浅谈java自定义排序(多维排序)(数组,列表,set,map)
前言:说到排序,不禁想起了Arrays.sort()方法,不过它只有一种顺序,即升序。可是我们做的题目中要求可能并不是升序,或者说其元素也不一定是一维的,那么怎么办?数组: 若元素是一维的,直接Arrays.sort(),但是如果想要倒序怎么办?emm。。。bingo,倒着输出不就完了嘛。 若元素是二维的以及以上的,那必须得自己定...原创 2019-03-22 18:14:46 · 1541 阅读 · 0 评论 -
第十届蓝桥杯省赛心得
emmm.... 今天是2019年3月28号,第十届蓝桥杯成绩出来了,感觉应该能拿省一的,没想到真的拿了省一,而且还是河南赛区java b组的前20名,,, 还是很开心的。。。。也算是给单调的大学生活一点色彩吧!我想说的是一路走来,也曾纠结,也曾迷惑,但是自己还是坚持下来了,从开始的c++转java各种不适应到现在的比较喜欢用java,一路风景只有自己知道。由此,我得到两条结论。1.当你不...原创 2019-03-28 22:21:31 · 434 阅读 · 0 评论 -
Huffman树构造基础java版
前言:Huffman树,即最小生成树。其构造过程如下:哈夫曼树并不唯一,但带权路径长度一定是相同的。如下,有权值为1,5,8,4的四个结点,其huffman树构造过程如下:总的来说,可以归结为以下几个步骤:假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,哈夫曼树的构造规则为:1. 将w1、w2、…,wn看成是有n ...原创 2019-05-14 17:14:51 · 945 阅读 · 0 评论 -
蓝桥杯:填字母游戏(第八届决赛javaB第五题) 博弈+递归+回溯+map记忆化
历届试题 填字母游戏 时间限制:1.0s 内...原创 2019-05-20 13:04:26 · 465 阅读 · 1 评论 -
浅谈图论之拓扑排序
前言:说起拓扑排序,第一想法就是判断一个图中有没有环。其次就是它的思想:1.统计所有顶点的入度。2.把入度为0的顶点输出,同时所有以此顶点为始点的边被抹去,即此边的终点结点入度-1(队列存储)3.如果把所有的顶点都输出了,说明此图无环,否则有环。下面看一下它具体的实现过程:嗯嗯,看了上面的是不是对拓扑排序有了一定的了解?接下来,看应用:首先对于图的结点,如果...原创 2019-05-22 19:26:31 · 356 阅读 · 0 评论 -
浅谈Java中的进制转换
前言:以前写c++的时候,进制转换的时候基本就是对进制求余,然后把余数倒着输出就OK了,但是到了java之后,一切都省去了,直接调函数,不仅方便,而且效率不低。话不多说,上代码:public class 进制转换 { public static void main(String[] args) { int a=11; String s="11"; //当...原创 2019-05-18 10:02:34 · 360 阅读 · 0 评论 -
蓝桥杯国赛总结
结果: 国三划水~~~反思: 怎么说呢,这届蓝桥杯的题有点复杂,原来国赛都是6道题,今年一下子变成了10道题,然后没一个题可以暴力的,,,尴尬,我做的2016-2018年的国赛题,哎,基本没用,现在大多数是在考思维,明显的考算法的比较少。 本来至少可以拿国二的,前两个小时搞掉了2小1大,但是后来每一道题到不简单...原创 2019-05-29 12:42:31 · 1716 阅读 · 0 评论 -
蓝桥杯 算法训练 Beaver's Calculator 归并排序 java 100分版
问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次。他开发了一种新的计算器,他将此命名为"Beaver's Calculator 1.0"。它非常特别,并且被计划使用在各种各样的科学问题中。 为了测试它,聪明的海狸邀请了n位科学家,编号从1到n。第i位科学家给这个计算器带来了ki个计算题。第i个科学家带来的问题编号1到n,并且它们必须按照编号一个一个计算,因为对于每个问题的计算都必...原创 2019-03-06 23:04:59 · 688 阅读 · 0 评论 -
历届试题 斐波那契 java实现 60分版
问题描述 斐波那契数列大家都非常熟悉。它的定义是: 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) 取模。 公式如下 但这个数字依然很大,所以需要再对 p...原创 2019-03-08 21:14:34 · 354 阅读 · 0 评论 -
高精度加法 100位以内 C++
问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c=a+b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进...原创 2018-03-01 22:20:39 · 1980 阅读 · 0 评论 -
矩阵翻硬币 (高精度乘法,高精度求平方根)
问题描述 小明先把硬币摆成了一个 n 行 m 列的矩阵。 随后,小明对每一个硬币分别进行一次 Q 操作。 对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。 其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。 当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面朝上。 小明想知道最开始有多少枚硬币是反面朝上...转载 2018-03-05 22:45:59 · 285 阅读 · 0 评论 -
java中的HashMap
重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。在下文中会有例子具体说明。 再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个...转载 2019-02-23 13:51:16 · 150 阅读 · 0 评论 -
java中的LinkedList
概要前面,我们已经学习了ArrayList,并了解了fail-fast机制。这一章我们接着学习List的实现类——LinkedList。和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码;最后再通过实例来学会使用LinkedList。内容包括:第1部分 LinkedList介绍第2部分 LinkedList数据结构第3部分 LinkedLi...转载 2019-02-23 15:14:45 · 255 阅读 · 0 评论 -
dfs,bfs求最短路径, java实现
刚看过LinkedList的知识,对java中的队列和栈有了更深的理解,于是趁热打铁,自己实现了bfs和dfs求最短路径。其中bfs由队列实现,dfs由递归实现(即栈)。话不多说,上代码:import java.util.Scanner;import java.util.LinkedList;import java.util.Queue;public class Main{...原创 2019-02-23 22:09:00 · 1610 阅读 · 0 评论 -
二分查找,java实现
一个简单的二分查找,如果从数组中找到解,返回其之坐标,(数组坐标从零开始),如果没有,则返回-1。代码如下:public class BinarySearch { static int bSearch(int a[],int l,int r,int v) { int m; while(l<=r)//可能没有要寻找的值,所以等于的时候还要...原创 2019-02-24 09:44:00 · 344 阅读 · 0 评论 -
蓝桥杯 大臣的旅费 java实现
问题描述很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了...原创 2019-02-28 16:43:40 · 789 阅读 · 3 评论 -
java中的大整数类详解
java较c++最大的便利就是拥有大整数类,从而使大整数的运算不像c++那样繁杂。话不多说,上代码:import java.util.Scanner;public class BigInteger { public static void main(String[] args) { // TODO Auto-generated method stub ...转载 2019-02-24 20:26:28 · 2864 阅读 · 0 评论 -
Java,最短路径之floyd算法实现
首先,作为一种求最短路径的算法,floyd算法属于比较暴力的,算法复杂度为O(n^3),仅适用于n比较小的问题(n不超过1000)。其模板如下:for(int k=0; k<=n; ++k)for(int i=0; i<=n; ++i)for(int j=0; j<=n; ++j)map[i][j] = min{ d[i][j], d[i][k]+d[k][j]};...原创 2019-02-25 19:37:43 · 1666 阅读 · 0 评论 -
蓝桥杯 k好数-java实现 动态规划
问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式输入包含两个正整数,K和L。输出格式输出一个整数,表示答案对1000000007取模...原创 2019-03-01 15:37:36 · 495 阅读 · 0 评论 -
java中String类基本方法
本来想自己整理一句的,但是参考课本感觉不太全面。还好,在网上找到有一篇不错的。嘿嘿,直接发链接了博文链接:https://blog.csdn.net/sjq__python_web/article/details/80099454还有再补充一下,链接文章没有的。代码:public class String { public static void main(java.la...原创 2019-02-25 20:44:53 · 182 阅读 · 0 评论 -
算法训练 出现次数最多的整数 java实现
问题描述 编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。 输出格...原创 2019-03-02 11:32:22 · 636 阅读 · 0 评论 -
java中的ArrayList的用法
本文通过实例讲解Java中如何使用ArrayList类。Java.util.ArrayList类是一个动态数组类型,也就是说,ArrayList对象既有数组的特征,也有链表的特征。可以随时从链表中添加或删除一个元素。ArrayList实现了List接口。大家知道,数组是静态的,数组被初始化之后,数组长度就不能再改变了。ArrayList是可以动态改变大小的。那么,什么时候使用Array(数...转载 2019-02-26 18:07:21 · 321 阅读 · 0 评论 -
蓝桥杯历届试题 合根植物 并查集 java实现
历届试题 合根植物 问题描述 w星球的一个种植园,被分成 m * n 个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。 这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。 如果我们告诉你哪些小格子间出...原创 2019-03-05 22:38:35 · 431 阅读 · 0 评论 -
数组全排列(元素不重复) java递归实现
全排列作为一个经典的递归问题,就是把一个大问题分解为若干个相互独立的子问题,这些子问题相互独立且与原问题相同。递归的解这些子问题,然后将这些子问题的解合并得到原问题的解。举个例子,1234的全排列 就等于1(234)的全排列+2(134)的全排列+3(214)+4(231)全排列,同理依次类推。其中java出现的问题就是swap函数不能像c++那样很简单的用指针或者&引用来交换,这里...原创 2019-02-26 22:15:45 · 2806 阅读 · 2 评论 -
高精度 求1000以内阶乘 (初学)C++版
问题描述 输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。 首先将a设为1,然后乘2,乘3,当乘到n时,即得到了...原创 2018-02-28 22:23:30 · 3148 阅读 · 1 评论