自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2020-03-18 19:42:44 118757 59

原创 Python 爬虫笔记

Python 爬虫笔记HTTP协议requests模块get() 和post()函数headers数据解析正则表达式bs4解析-HTML语法本文作为自学笔记,仅供参考学习课程:B站路飞学城IT爬虫:利用程序获取互联网上的资源。robots.txt协议 :规定网站中哪些数据不可以爬取, 只是协议,但并不能防止恶意爬取爬虫的一般步骤:拿到页面源代码解析该源代码,拿到数据在学习爬虫之前,要先了解一下HTTP协议。HTTP协议HTTP协议是万维网的通信基础。简单来说就是计算机访问网页所需

2022-03-06 19:22:38 2378

原创 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 391 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 1424

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

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

2020-04-10 22:13:39 6622 5

原创 一招制敌的贪心算法

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

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

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

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

2020-04-01 22:11:42 3024 8

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

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

2020-03-31 21:07:31 62011 4

原创 任意进制之间的转换

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

2020-03-27 15:02:17 6383 1

原创 高精度运算(大数运算)

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

2020-03-24 03:36:31 3884 4

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

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

2020-03-19 02:19:52 11494 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 8167 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 2987

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

文章目录摘要欧几里得算法扩展欧几里得算法最小正整数解摘要本文主要讲解欧几里得算法和扩展欧几里得算法。欧几里得算法欧几里得算法就是辗转相除法,用于求两个数的最大公约数。设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 4390 2

原创 快速幂

文章目录摘要引言求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 3264 7

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

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

2020-03-05 15:47:41 17321 9

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

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

2020-02-29 20:13:06 5743 2

原创 二分图

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

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

原创 并查集

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

2020-02-20 01:46:31 3018

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

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

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

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

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

2020-02-17 02:28:17 8594 4

原创 哈希表

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

2020-02-15 00:14:24 3237 1

原创 用数组模拟栈和队列

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

2020-02-14 19:01:06 3539

原创 用数组模拟单链表

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

2020-02-13 20:54:32 4310

原创 二分法

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

2020-02-11 21:02:35 5158 2

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

本文主要介绍关于图的最短路的五种常用算法和其应用。朴素Dijkstra堆优化DijkstraSPFAFloyd。这几种算法有各自的优势和劣势,适用于不同的场景。另:本篇文章篇幅较长,但难度不大, 建议学习算法的同时,自己手动画图,并模拟算法流程,将会一目了然,所见即所得!一定要画图。一定要刷题。写题的时候一定要注意是不是无向图, 无向图的话建边时要建一来一去两条,如果用邻接表存,数组一定要开足够大,至少是边数的两倍。对于邻接矩阵,要判断重边。邻接表则不需要判断重边。

2020-02-08 17:17:54 9626 10

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

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

2020-02-06 02:18:53 17247 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 12791 6

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

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

2020-02-02 21:26:37 10696 10

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

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

2020-01-31 22:40:26 7371 7

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

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

2020-01-28 14:40:21 5183

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

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

本文主要介绍ArrayList和LinkedList的常用方法, 也就是动态数组(C++中的vector)和链表,其中LinkedList可以用来实现队列和栈(C++中的queue和stack)。

2020-01-22 11:13:24 8643

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

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

2020-01-21 23:36:50 8575 6

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

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

2020-01-21 02:34:05 11750 14

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

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

2020-01-18 21:45:53 8870 7

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

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

2020-01-14 13:40:23 14147 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 8310 7

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

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

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

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

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

2020-01-09 01:58:43 2237

空空如也

空空如也

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

TA关注的人

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