蓝桥杯
文章平均质量分 84
Androids_lost_Sheep
苟有恒,何必三更眠五更起。最无益,莫过一日曝十日寒。
展开
-
ST表模板
#include <iostream>using namespace std;// f[i, j] = [i, 2^j-1] 的最大值 即: 从i开始, 连续 2^j 个数的最大值。const int N = 1e5 + 5;int arr[N];int ST[N][18];int log2[N] = {-1}; int read(){ int x = 0, f = 1; char c = getchar(); while(c < '0' ||原创 2020-11-10 20:51:44 · 459 阅读 · 1 评论 -
2015年第六届蓝桥杯省赛AB组全部编程题和部分填空题AC代码(仅不包含A组第十题灾后重建)
文章目录方程整数解星系炸弹牌型总数手链样式饮料换购奖券数目加法变乘法移动距离生命之树打印大X方程整数解import java.io.*;import java.util.*; public class Main{ private static final Class<int[]> Comparator = null; public static void main(String args[]) { int res = 0;原创 2020-10-07 19:57:27 · 1772 阅读 · 0 评论 -
第十届蓝桥杯软件类省赛 Java 大学 B 组 题目以及详细解析
文章目录结果填空题ABCDE程序设计题FG网上的题解一大堆,但是,要么是只有题,要么是错误的很多。所以本篇绝对保证正确性。结果填空题A答案:97 + 99 + 99 + 97 + 98 = 490 选法不唯一, 和唯一。找出每个位置评分最高的,并且每个人只能担任一个号位。因为数据很少,直接手算就可以,但是如果这道题是编程题,数据量很大,好像不太好处理。B按子串长度从(1~...原创 2020-04-10 22:13:39 · 6725 阅读 · 5 评论 -
一招制敌的贪心算法
文章目录摘要区间问题最大不相交区间数区间覆盖问题摘要本文主要介绍贪心算法。 贪心算法并不是一种特定的算法,而是一种策略,一种一招制敌的策略。每次都贪心选择最好的,就是贪心算法。 所以贪心算法往往效率高,代码短。常见的贪心问题:区间问题, Huffman编码,工作时间问题。区间问题最大不相交区间数例题: HDU 2037 今年暑假不AC题目大意就是给出n个节目,n个节目起止时间不同,要...原创 2020-04-02 20:54:57 · 6275 阅读 · 2 评论 -
拓扑序列(拓扑排序)
文章目录摘要什么是拓扑序列拓扑序的求法摘要本文主要介绍拓扑排序,和求解拓扑排序的方法。什么是拓扑序列拓扑序列是对于有向图而言的,有向图的拓扑序是其顶点的线性排序,使得对于从顶点uuu 到顶点vvv的每个有向边uvuvuv, uuu 在排序中都在vvv之前。例如对于下图:对于上图, 存在4条边:(1,3)(1,2)(2,4)(2,3)该图的拓扑序必须要满足以下两点:每个顶点只出现...原创 2020-03-31 21:07:31 · 67631 阅读 · 4 评论 -
任意进制之间的转换
本文主要讲解整数的进制转换问题。方便的是,对于低精度整数,java中的整型基类Integer和Long中的parseXXX()方法和valueOf()方法可以将2 ~ 36进制的字符串转化为10进制整数,toString()方法可以将10进制数转化为2 ~ 36进制的字符串。对于高精度数,java中的大数类中也包含可以将2 ~ 36进制的字符...原创 2020-03-27 15:02:17 · 6599 阅读 · 1 评论 -
高精度运算(大数运算)
高精度运算是指参与运算的数远大于标准数据类型的数,动辄成百上千位的数。所以高精度数又被称为大数。本文主要讲解:大数加法,大数减法,大数乘法,大数除法,大数阶乘。java的大数类做这一类题很方便,效率高代码短,但是学会高精度算法还是很有必要的。原创 2020-03-24 03:36:31 · 4200 阅读 · 4 评论 -
计算组合数的三种方式
本文将详细介绍计算组合数的三种方式,这三种方式分别适用于不同的场景。原创 2020-03-19 02:19:52 · 12376 阅读 · 1 评论 -
计算n阶行列式
文章目录摘要行列式行列式的值拉普拉斯展开余子式代数余子式代码实现:摘要本文主要介绍如何用拉普拉斯展开计算计算n阶行列式的值。行列式行列式(Determinant)是数学中的一个函数,将一个n×n{n\times n}n×n的矩阵A{A}A映射到一个纯量,记作det(A)或∣A∣{\det(A)}或{|A|}det(A)或∣A∣。 ——摘自维基百科说白了就是一个n×n{n\times...原创 2020-03-16 13:45:38 · 8785 阅读 · 2 评论 -
矩阵乘法和矩阵快速幂
文章目录摘要矩阵矩阵乘法摘要本文主要讲解矩阵乘法和矩阵快速幂。矩阵数学上,一个m×n{\displaystyle m\timesn}m×n的矩阵是一个由mmm行(row)n列(column)元素排列成的矩形阵列。矩阵里的元素可以是数字、符号或数学式。以下是一个由6个数字元素构成的2行3列的矩阵:[19−13205−6]{\displaystyle {\begin{bmatrix}1&...原创 2020-03-10 23:02:38 · 3145 阅读 · 0 评论 -
并查集
并查集摘要什么是并查集并查集的实现摘要本文主要介绍并查集和其效率最高的实现方式。什么是并查集并查集顾名思义,是一种用于处理集合与集合之间查询和合并等操作的数据结构。比如询问两点是否在同一集合,将两个不同集合合并等并查集的实现给出n个点,将其划分为两个集合,查询其中某两个点是否在同一集合内,你会怎么做?简单的方法就是,将同一个集合内的所有点设置一个标记,然后查询两个点的标记是否一样...原创 2020-02-20 01:46:31 · 3146 阅读 · 0 评论 -
最小生成树问题的两种算法
最小生成树摘要最小生成树的定义Prim算法Kruskal基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍最小生成树以及求最小生成树常用的两种算法,Prim算法和Kruskal算法。最小生成树的定义最小生成树是一个图的总边权最小的极小连通子图Prim算法Prim算法和Dijkst...原创 2020-02-20 01:04:06 · 6370 阅读 · 10 评论 -
图和树的存储方式:邻接矩阵和邻接表
邻接矩阵和邻接表摘要无向图和有向图的区别稀疏图和稠密图邻接矩阵邻接矩阵的初始化邻接矩阵的读入邻接表基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍邻接矩阵和邻接表的实现方式,无向图和有向图的区别,以及稠密图和稀疏图的区别。以及两种存储方式的使用场景。 稠密图使用邻接矩阵存储,稀疏图使用邻接表...原创 2020-02-17 02:28:17 · 9249 阅读 · 4 评论 -
哈希表
本文主要介绍哈希表的定义,并用数组模拟哈希表。原创 2020-02-15 00:14:24 · 3413 阅读 · 1 评论 -
用数组模拟栈和队列
文章目录摘要栈队列摘要之前已经介绍过JAVA中已经实现好的栈和队列,本文主要介绍如何用数组模拟栈和队列。用数组模拟栈和队列的的优点就是快。栈栈的特点是“先进后出”,只能在栈顶进行插入和删除,所以用数组模拟的话,我们只能在数组的末尾进行插入和删除。代码很简单,一看就能明白:public class Main{ static int[] s = new int[100010]; // 栈...原创 2020-02-14 19:01:06 · 3679 阅读 · 0 评论 -
用数组模拟单链表
文章目录摘要用数组模拟单链表插入遍历摘要本文主要介绍如何用数组模拟单链表。如果有同学没学过数据结构的话,请先了解顺序表和链表的定义。推荐视频:https://www.bilibili.com/video/av31802230用数组模拟单链表我们知道链表是通过指针将所有的结点链接实现的,在此过程中,每创建一个新的结点,都需要给它分配空间,也就是要new一下,而这个操作是很耗时的,另外,链表...原创 2020-02-13 20:54:32 · 4440 阅读 · 0 评论 -
二分法
二分法摘要整数二分摘要本文主要介绍二分法。二分法是一种精妙的算法,效率贼高,很多复杂的算法都采用了二分优化。二分法用于在单调的序列内快速查找某个值,方法是序列分为两半,判断要查找的值在哪个区间,舍弃另一半,每次查询都会舍弃序列的一半,所以时间复杂度是log(n)整数二分整数二分就是在一些...原创 2020-02-11 21:02:35 · 5284 阅读 · 2 评论 -
排序(一):快速排序
快速排序推荐去看个视频:https://www.bilibili.com/video/av38482542虽然java和c++有现成的sort函数,java用Arrays.sort,C++用sort,但是,我们也要了解其原理,要能熟练的写出模板。快排和归并排序一样都是分治法思想。快速排序的主要思想:从序列中取一个基准值,然后将序列分为左右两部分, 使得左边的数都比基准值小,右......原创 2019-11-10 00:02:31 · 4570 阅读 · 1 评论 -
最短路问题的五种算法
本文主要介绍关于图的最短路的五种常用算法和其应用。朴素Dijkstra堆优化DijkstraSPFAFloyd。这几种算法有各自的优势和劣势,适用于不同的场景。另:本篇文章篇幅较长,但难度不大, 建议学习算法的同时,自己手动画图,并模拟算法流程,将会一目了然,所见即所得!一定要画图。一定要刷题。写题的时候一定要注意是不是无向图, 无向图的话建边时要建一来一去两条,如果用邻接表存,数组一定要开足够大,至少是边数的两倍。对于邻接矩阵,要判断重边。邻接表则不需要判断重边。原创 2020-02-08 17:17:54 · 10147 阅读 · 10 评论 -
深度优先搜索(DFS)和广度优先搜索(BFS)
DFS和BFS摘要状态DFSBFS摘要本文主要介绍 深度优先搜索和广度优先搜索,下文皆称为DFS和BFS。DFS和BFS是两种搜索树和图的基本策略,见名知其义, 深搜和广搜,一种往深处搜,一种往边上搜。 DFS常用于暴力搜索所有状态,BFS常用于搜索到达某一状态的最短路径。状态我们将DFS和BFS搜索的东西称为状态, 状态就是一个具体问题的一个解,而将问题的所有状态关联在一起, 就能...原创 2020-02-06 02:18:53 · 17577 阅读 · 6 评论 -
递归
文章目录摘要递归摘要本文将主要介绍递归。递归递归的含义很好理解,就是一个函数调用自身,难就难在如何确定一个题目的递归式,这就需要多刷题了。一个完整的递归函数包含两个部分:递归式递归出口以斐波那契数列为例:int f(int n){ if(n == 1 || n == 2) return 1; // 递归出口 return f(n-1) + f(n-2); // 递归式...原创 2020-02-03 23:06:23 · 12895 阅读 · 6 评论 -
java中sort方法的自定义比较器写法
文章目录摘要对数组排序对集合进行排序对自定义对象数组排序摘要在做一些算法题时常常会需要对数组、自定义对象、集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collections.sort()方法。对自定义对象排序时要自己重写比较器,对象数组则调用Arrays.sort(),对象集合则调用Collections.sort()。两个方法默认都是升序,也...原创 2020-02-02 21:26:37 · 10924 阅读 · 10 评论 -
算法竞赛中的常用JAVA API:PriorityQueue(优先队列)
文章目录PriorityQueue初始化常用函数实现大根堆的两种方式实例PriorityQueue翻译过来就是优先队列,本质是一个堆, 默认情况下堆顶每次都保留最小值,每插入一个元素,仍动态维护堆顶为最小值。初始化PriorityQueue()//使用默认的初始容量(11)创建一个 PriorityQueue,并根据其自然顺序对元素进行排序。PriorityQueue<In...原创 2020-01-31 22:40:26 · 7680 阅读 · 7 评论 -
算法竞赛中的常用JAVA API :HashSet 和 TreeSet
文章目录HashSetTreeSetset容器的特点是不包含重复元素,也就是说自动去重。HashSetHashSet基于哈希表实现,无序。add(E e)//如果容器中不包含此元素,则添加。clear()//清空contains(Object o)//查询指定元素是否存在,存在返回trueisEmpty()// 判空iterator()//返回此容器的迭代器remove//...原创 2020-01-28 14:40:21 · 5232 阅读 · 0 评论 -
算法竞赛中的常用JAVA API :HashMap 和 TreeMap
文章目录HashMapTreeMap摘要本文主要介绍Map接口下的HashMap和TreeMap。HashMapHashMap是基于哈希表的 Map 接口的实现,是无序的clear()//清空。containsKey(Object key)//如果包含指定键,返回truecontainsValue(Object value)//如果包含指定值, 返回trueget(Objec...原创 2020-01-25 22:10:08 · 7320 阅读 · 3 评论 -
算法竞赛中的常用JAVA API :ArrayList(Vector) 和 LinkedList
本文主要介绍ArrayList和LinkedList的常用方法, 也就是动态数组(C++中的vector)和链表,其中LinkedList可以用来实现队列和栈(C++中的queue和stack)。原创 2020-01-22 11:13:24 · 8933 阅读 · 0 评论 -
算法竞赛中的常用JAVA API :Calendar日期类
文章目录摘要Calendar类常用的日历字段Claendar类的实例化设置特定日期摘要在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法。Date类大部分方法已经废弃了,所以本文将详细介绍Calendar类。Calendar类Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOU...原创 2020-01-21 23:36:50 · 8756 阅读 · 6 评论 -
蓝桥杯知识点汇总:基础知识和常用算法
此系列包含蓝桥杯(软件类)所考察的绝大部分知识点,算法,和写算法题必备的JAVA的基础语法,API,对想从C/C++转到JAVA组以及初学算法的同学会有帮助。原创 2020-03-18 19:42:44 · 120050 阅读 · 59 评论 -
算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别
本文将介绍String、StringBuilder类的常用方法。> 在java中**String**类不可变的,创建一个**String**对象后不能更改它的值。所以如果需要对原字符串进行一些改动操作,就需要用**StringBuilder**类或者**StringBuffer**类,**StringBuilder**比**StringBuffer**更快一些,缺点是**StringBuilder**不是线程安全的,但在算法竞赛中一般我们用不到多线程。所以,主要推荐使用**StringBuilder**类原创 2020-01-21 02:34:05 · 12391 阅读 · 14 评论 -
算法竞赛中的常用JAVA API :Math类
Math类包含了一些常用的数学方法,在java.lang.*包内。(不能用于大数类,大数类请参见备战蓝桥杯java(五):算法竞赛中的常用API :大数类)求最值求平方根求绝对值求幂(a^b)取整得到一个随机数三角函数求最值最小值原创 2020-01-18 21:45:53 · 8953 阅读 · 7 评论 -
算法竞赛中的常用JAVA API :大数类
文章目录BigIntegerjava中的基础数据类型能存储的最大的二进制数是2^63-1,对应的十进制数是9223372036854775807,也就是说只要运算过程中会超过这个数,就会造成数据溢出,BigIntegerBigInteger是java.math.*...原创 2020-01-14 13:40:23 · 14461 阅读 · 15 评论 -
JAVA基础语法:函数(方法)、类和对象
文章目录函数函数在java中函数也称为方法,是一段具备某种功能的可重用代码块。一个函数包括这几部分:1. 函数头2. 代码块3. 返回值函数头包括函数访问修饰符,函数返回值类型, 函数名,参数具体看个实例:public class Main{ public static void main(String[] args){ int a = 1; int b = 2; ...原创 2020-01-12 04:14:38 · 8489 阅读 · 7 评论 -
JAVA基础语法:常用功能符以及循环结构和分支结构
文章目录1.循环结构1.循环结构whilefordo…whilewhile:while(布尔表达式){}原创 2020-01-10 22:20:31 · 7022 阅读 · 1 评论 -
JAVA基础语法:java编程规范和常用数据类型
目录摘要面向java编程常用数据类型数组定义初始化数组的拷贝StringString 的创建(注意是大写S!):String类型的比较: 1.==, != : 2. str1.equals(String str2);String对象的遍历:摘要本文主要介绍了最基本的java程序规则,和常用数据类型,其中侧重说了数组的一些...原创 2020-01-05 13:02:48 · 10584 阅读 · 11 评论 -
JAVA的一般输入输出 和 快速输入输出 (BufferedReader&BufferedWrite)
JAVA基础知识和常用算法合集:https://blog.csdn.net/GD_ONE/article/details/104061907目录1.主类的命名必须是Main2.输入输出:2.1输入:(1)使用Scanner类进行输入(2) hasNext()方法2.2输出3快速输入输出3.1使用StreamTokenizer 和 PrintW...原创 2019-12-10 22:56:48 · 27679 阅读 · 26 评论