自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 蓝桥杯知识点汇总:基础知识和常用算法

此系列包含蓝桥杯(软件类)所考察的绝大部分知识点,算法,和写算法题必须学会的JAVA的基础语法,API,对想从C/C++转到JAVA组以及初学算法的同学很有帮助。

2020-03-18 19:42:44 31195 13

原创 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 10

原创 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 112

原创 第十届蓝桥杯软件类省赛 Java 大学 B 组 题目以及详细解析
原力计划

文章目录结果填空题ABCDE程序设计题FG网上的题解一大堆,但是,要么是只有题,要么是错误的很多。所以本篇绝对保证正确性。结果填空题A答案:97 + 99 + 99 + 97 + 98 = 490 选法不唯一, 和唯一。找出每个位置评分最高的,并且每个人只能担任一个号位。因为数据很少,直接手算就可以,但是如果这道题是编程题,数据量很大,好像不太好处理。B按子串长度从(1~...

2020-04-10 22:13:39 892 1

原创 一招制敌的贪心算法
原力计划

文章目录摘要区间问题最大不相交区间数区间覆盖问题摘要本文主要介绍贪心算法。 贪心算法并不是一种特定的算法,而是一种策略,一种一招制敌的策略。每次都贪心选择最好的,就是贪心算法。 所以贪心算法往往效率高,代码短。常见的贪心问题:区间问题, Huffman编码,工作时间问题。区间问题最大不相交区间数例题: HDU 2037 今年暑假不AC题目大意就是给出n个节目,n个节目起止时间不同,要...

2020-04-02 20:54:57 830 2

原创 CodeBlocks 解决配置好编译器路径后仍无法找到编译器问题(下载的是附带编译器的版本)

今天刚安装完CodeBlocks,却发现无法编译源代码,右下角提示:我下载的是附带编译器的WIN10 64位的版本。安装位置是自定义的。下载链接:解决办法:查看是否配置了正确的编译器路径有些博主的解决办法是,Settings -> Compiler进入编译设置界面然后点击Reset defaults 或者点击Auto-detect,如果点击完之后,这个路径没有发生任何变化...

2020-04-01 22:11:42 1130 4

原创 拓扑序列(拓扑排序)

文章目录摘要什么是拓扑序列拓扑序的求法摘要本文主要介绍拓扑排序,和求解拓扑排序的方法。什么是拓扑序列拓扑序列是对于有向图而言的,有向图的拓扑序是其顶点的线性排序,使得对于从顶点uuu 到顶点vvv的每个有向边uvuvuv, uuu 在排序中都在vvv之前。例如对于下图:对于上图, 存在4条边:(1,3)(1,2)(2,4)(2,3)该图的拓扑序必须要满足以下两点:每个顶点只出现...

2020-03-31 21:07:31 942

原创 任意进制之间的转换
原力计划

本文主要讲解整数的进制转换问题。方便的是,对于低精度整数,java中的整型基类Integer和Long中的parseXXX()方法和valueOf()方法可以将2 ~ 36进制的字符串转化为10进制整数,toString()方法可以将10进制数转化为2 ~ 36进制的字符串。对于高精度数,java中的大数类中也包含可以将2 ~ 36进制的字符...

2020-03-27 15:02:17 531

原创 高精度运算(大数运算)
原力计划

高精度运算是指参与运算的数远大于标准数据类型的数,动辄成百上千位的数。所以高精度数又被称为大数。本文主要讲解:大数加法,大数减法,大数乘法,大数除法,大数阶乘。java的大数类做这一类题很方便,效率高代码短,但是学会高精度算法还是很有必要的。

2020-03-24 03:36:31 657 1

原创 计算组合数的三种方式
原力计划

本文将详细介绍计算组合数的三种方式,这三种方式分别适用于不同的场景。

2020-03-19 02:19:52 771

原创 计算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 1147 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 712

原创 欧几里得算法和扩展欧几里得算法

文章目录摘要欧几里得算法扩展欧几里得算法最小正整数解摘要本文主要讲解欧几里得算法和扩展欧几里得算法。欧几里得算法欧几里得算法就是辗转相除法,用于求两个数的最大公约数。设gcd(a,b)gcd(a, b)gcd(a,b) 表示a和b的最大公约数。辗转相除法的核心就是gcd(a,b)=gcd(b,a%b)gcd(a, b) = gcd(b, a\%b)gcd(a,b)=gcd(b,a%b)...

2020-03-09 23:29:46 706

原创 快速幂

文章目录摘要引言求nkn^knk快速幂超级详细的基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍快速幂算法,快速幂虽然代码简单,但是往往会与其他算法相结合,很重要。引言当我们计算 nkn^knk时,常用的做法是对nnn连乘kkk次, 但如果kkk特别大,假如k=1e6k = 1e6k=1...

2020-03-06 19:42:48 751 2

原创 素数筛法详解:埃氏筛和欧拉筛
原力计划

文章目录摘要欧拉筛摘要本文主要介绍欧拉筛和欧拉函数。欧拉筛上一篇博客讲过了如何判断一个数是否是质数,那么现在要在1s内求出区间[1,1e7][1,1e7][1,1e7]内的所有质数,你会怎么做,如果对每个数都判断其是不是质数,时间复杂度是O(n∗n)O(n*\sqrt{n})O(n∗n​),数据量是1e71e71e7,这样做肯定会超时的。这就需要用到下面讲的欧拉筛法了, 欧拉筛法的时间复杂...

2020-03-05 15:47:41 1788 4

原创 判断质数和用算数基本定理分解质因数

文章目录摘要质数判断一个数是否是质数分解质因数超级详细的基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要讲解如何判断一个数是质数,和如何对一个数分解质因数。本文是很基础的也很重要的数学知识。质数质数又称为素数,是指大于1的并且除了1和它本身外,没有其他因数的自然数。判断一个数是否是质数假...

2020-02-29 20:13:06 1135

原创 二分图
原力计划

二分图摘要什么是二分图染色法判断二分图匈牙利算法超级详细的基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍二分图的基本概念以及如何用染色法判断二分图,如何用匈牙利算法求二分图的最大匹配。什么是二分图二分图又称作二部图,是图论中的一种特殊模型。…(百度百科)简单来说就是:如果一个图的所...

2020-02-24 21:14:48 942 2

原创 并查集

并查集摘要什么是并查集并查集的实现摘要本文主要介绍并查集和其效率最高的实现方式。什么是并查集并查集顾名思义,是一种用于处理集合与集合之间查询和合并等操作的数据结构。比如询问两点是否在同一集合,将两个不同集合合并等并查集的实现给出n个点,将其划分为两个集合,查询其中某两个点是否在同一集合内,你会怎么做?简单的方法就是,将同一个集合内的所有点设置一个标记,然后查询两个点的标记是否一样...

2020-02-20 01:46:31 922

原创 最小生成树问题的两种算法

最小生成树摘要最小生成树的定义Prim算法Kruskal基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍最小生成树以及求最小生成树常用的两种算法,Prim算法和Kruskal算法。最小生成树的定义最小生成树是一个图的总边权最小的极小连通子图Prim算法Prim算法和Dijkst...

2020-02-20 01:04:06 1344 10

原创 图和树的存储方式:邻接矩阵和邻接表

邻接矩阵和邻接表摘要无向图和有向图的区别稀疏图和稠密图邻接矩阵邻接矩阵的初始化邻接矩阵的读入邻接表基础算法和数据结构合集:https://blog.csdn.net/GD_ONE/article/details/104061907摘要本文主要介绍邻接矩阵和邻接表的实现方式,无向图和有向图的区别,以及稠密图和稀疏图的区别。以及两种存储方式的使用场景。 稠密图使用邻接矩阵存储,稀疏图使用邻接表...

2020-02-17 02:28:17 2757

原创 哈希表

本文主要介绍哈希表的定义,并用数组模拟哈希表。

2020-02-15 00:14:24 933

原创 用数组模拟栈和队列

文章目录摘要栈队列摘要之前已经介绍过JAVA中已经实现好的栈和队列,本文主要介绍如何用数组模拟栈和队列。用数组模拟栈和队列的的优点就是快。栈栈的特点是“先进后出”,只能在栈顶进行插入和删除,所以用数组模拟的话,我们只能在数组的末尾进行插入和删除。代码很简单,一看就能明白:public class Main{ static int[] s = new int[100010]; // 栈...

2020-02-14 19:01:06 1965

原创 用数组模拟单链表

文章目录摘要用数组模拟单链表插入遍历摘要本文主要介绍如何用数组模拟单链表。如果有同学没学过数据结构的话,请先了解顺序表和链表的定义。推荐视频:https://www.bilibili.com/video/av31802230用数组模拟单链表我们知道链表是通过指针将所有的结点链接实现的,在此过程中,每创建一个新的结点,都需要给它分配空间,也就是要new一下,而这个操作是很耗时的,另外,链表...

2020-02-13 20:54:32 1037

原创 二分法

二分法摘要整数二分摘要本文主要介绍二分法。二分法是一种精妙的算法,效率贼高,很多复杂的算法都采用了二分优化。二分法用于在单调的序列内快速查找某个值,方法是序列分为两半,判断要查找的值在哪个区间,舍弃另一半,每次查询都会舍弃序列的一半,所以时间复杂度是log(n)整数二分整数二分就是在一些...

2020-02-11 21:02:35 1320

原创 最短路问题的五种算法

单元最短路和多源汇最短路的适用算法单源最短路: 一个点到其他点的最短路。无负边权时适用算法:稠密图: 朴素Dijkstra稀疏图: 堆优化Dijkstra有负边权时适用算法:SPFABellman-Ford多源汇最短路: 起点终点不确定。Floyd图的存储方式存储稠密图时,使用邻接矩阵。存储稀疏图时,使用邻接表。稠密图是指边数远大于点数,稀疏图是边...

2020-02-08 17:17:54 2441 4

原创 深度优先搜索(DFS)和广度优先搜索(BFS)

DFS和BFS摘要状态DFSBFS摘要本文主要介绍 深度优先搜索和广度优先搜索,下文皆称为DFS和BFS。DFS和BFS是两种搜索树和图的基本策略,见名知其义, 深搜和广搜,一种往深处搜,一种往边上搜。 DFS常用于暴力搜索所有状态,BFS常用于搜索到达某一状态的最短路径。状态我们将DFS和BFS搜索的东西称为状态, 状态就是一个具体问题的一个解,而将问题的所有状态关联在一起, 就能...

2020-02-06 02:18:53 4687 2

原创 递归

文章目录摘要递归摘要本文将主要介绍递归。递归递归的含义很好理解,就是一个函数调用自身,难就难在如何确定一个题目的递归式,这就需要多刷题了。一个完整的递归函数包含两个部分:递归式递归出口以斐波那契数列为例:int f(int n){ if(n == 1 || n == 2) return 1; // 递归出口 return f(n-1) + f(n-2); // 递归式...

2020-02-03 23:06:23 3325

原创 java中sort方法的自定义比较器写法

文章目录摘要对数组排序对集合进行排序对自定义对象数组排序摘要在做一些算法题时常常会需要对数组、自定义对象、集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collections.sort()方法。对自定义对象排序时要自己重写比较器,对象数组则调用Arrays.sort(),对象集合则调用Collections.sort()。两个方法默认都是升序,也...

2020-02-02 21:26:37 2645 4

原创 算法竞赛中的常用JAVA API:PriorityQueue(优先队列)

文章目录PriorityQueue初始化常用函数实现大根堆的两种方式实例PriorityQueue翻译过来就是优先队列,本质是一个堆, 默认情况下堆顶每次都保留最小值,每插入一个元素,仍动态维护堆顶为最小值。初始化PriorityQueue()//使用默认的初始容量(11)创建一个 PriorityQueue,并根据其自然顺序对元素进行排序。PriorityQueue<In...

2020-01-31 22:40:26 1928 5

原创 算法竞赛中的常用JAVA API :HashSet 和 TreeSet

文章目录HashSetTreeSetset容器的特点是不包含重复元素,也就是说自动去重。HashSetHashSet基于哈希表实现,无序。add(E e)//如果容器中不包含此元素,则添加。clear()//清空contains(Object o)//查询指定元素是否存在,存在返回trueisEmpty()// 判空iterator()//返回此容器的迭代器remove//...

2020-01-28 14:40:21 1254

原创 算法竞赛中的常用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 1602 1

原创 算法竞赛中的常用JAVA API :ArrayList(Vector) 和 LinkedList

文章目录Vector构造方法增加元素删除元素修改元素查找元素容器大小判空转化为数组转化为字符串Vector实例Stack构造方法增加元素删除元素查找元素容器大小判空转化为数组转化为字符串容器大小Stack实例摘要:本文主要介绍Vector和Stack的常用方法。VectorVector 类可以实现可增长的对象数组。构造方法Vector();//构造一个空向量,使其内部数据数组的大小为...

2020-01-22 11:13:24 2057

原创 算法竞赛中的常用JAVA API :Calendar日期类

文章目录摘要Calendar类常用的日历字段Claendar类的实例化设置特定日期摘要在蓝桥杯中有关于日期计算的问题,正好java中的Date类和Calendar类提供了对日期处理的一些方法。Date类大部分方法已经废弃了,所以本文将详细介绍Calendar类。Calendar类Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOU...

2020-01-21 23:36:50 1956 5

原创 算法竞赛中的常用JAVA API :String 、StringBuilder、StringBuffer常用方法和区别

本文将介绍String、StringBuilder类的常用方法。> 在java中**String**类不可变的,创建一个**String**对象后不能更改它的值。所以如果需要对原字符串进行一些改动操作,就需要用**StringBuilder**类或者**StringBuffer**类,**StringBuilder**比**StringBuffer**更快一些,缺点是**StringBuilder**不是线程安全的,但在算法竞赛中一般我们用不到多线程。所以,主要推荐使用**StringBuilder**类

2020-01-21 02:34:05 2356 8

原创 算法竞赛中的常用JAVA API :Math类

Math类包含了一些常用的数学方法,在java.lang.*包内。(不能用于大数类,大数类请参见备战蓝桥杯java(五):算法竞赛中的常用API :大数类)求最值求平方根求绝对值求幂(a^b)取整得到一个随机数三角函数求最值最小值

2020-01-18 21:45:53 2138 1

原创 算法竞赛中的常用JAVA API :大数类

文章目录BigIntegerjava中的基础数据类型能存储的最大的二进制数是2^63-1,对应的十进制数是9223372036854775807,也就是说只要运算过程中会超过这个数,就会造成数据溢出,BigIntegerBigInteger是java.math.*...

2020-01-14 13:40:23 3098 10

原创 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 1767 3

原创 JAVA基础语法:常用功能符以及循环结构和分支结构

文章目录1.循环结构1.循环结构whilefordo…whilewhile:while(布尔表达式){}

2020-01-10 22:20:31 1676 1

原创 状态压缩DP_01 :最短Hamilton路径

哈密顿路径的定义是从起始点到结束点不重不漏地经过每个点恰好一次。那么哈密顿路径的所有情况就是0123..n数列的全排列了。如果要求出最短路径, 枚举全排列的话时间复杂度就达到了o(n*n!)级别这道题的正解是状态压缩+DP那么什么是状态压缩呢?为什么能用到求最短哈密顿路径呢?先看个实例。有5个点,0 1 2 3 4 求其最短哈密顿路径.因为每个点只能经过一次, 所以...

2020-01-09 01:58:43 1761

原创 位运算基础

文章目录1.什么是位运算2.位运算有哪些3.常用的位运算操作1.什么是位运算 位运算又称为位操作,指的是直接对二进制位进行的一系列操作。2.位运算有哪些AND( & )按位与1 & 1 = 01 & 0 = 00 & 0 = 11101 & 1100 = 1100OR( | )按位或1 | 1 = 11 | 0 = 10...

2020-01-09 00:40:15 3540 1

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除