自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2022年ICPC亚洲区域赛南京站题解

2022年ICPC亚洲区域赛南京站题解,个人题解

2024-06-01 18:17:15 388

原创 2024年西安交通大学程序设计竞赛校赛

2024年西安交通大学程序设计竞赛校赛,个人题解

2024-06-01 18:11:45 954

原创 第十八届东北CCPC程序设计竞赛题解

第十八届东北CCPC程序设计竞赛题解,个人笔记记录

2024-06-01 18:06:43 430

原创 2023年广东省大学生程序设计竞赛题解

算法训练比赛题解,2023年广东省大学生程序设计竞赛题解

2024-06-01 10:06:25 605

原创 E - Remove Pairs(记忆化搜索or状态压缩dp)

该题是一个典型的状态压缩dp的题,但也可以用记忆化搜索来写。

2024-05-25 20:28:25 260 1

原创 马拉车算法细致讲解

马拉车算法讲解

2024-03-24 17:46:57 342

原创 算法笔记【乘法逆元】

乘法逆元的基本介绍,这里只涉及算法竞赛的内容,不包括其他方面。制作不易,点个赞再走吧

2024-01-24 15:04:10 972 1

原创 算法学习笔记【数学知识】

该内容包含算法中包含的基本数学知识,内容未更新完,制作不易,点个赞再走吧

2024-01-23 18:03:47 1018

原创 异或的基本性质

相同为0(1 ^ 1 = 0 && 0 ^ 0 = 0), 不同为 1 (1 ^ 0 = 1 && 0 ^ 1 == 1);

2023-11-26 09:41:26 79

原创 扫描法求最大子段和

【代码】扫描法求最大子段和。

2023-11-18 20:22:50 44

原创 xpath基本语法

/: 查找所有子孙节点,不考虑层级关系。

2023-08-31 18:29:26 56

原创 AcWing 201. 可见的点(线性筛求欧拉函数)

该题是一个很经典的欧拉函数的题,中间用到了线性筛求欧拉函数和一定的数学知识。

2023-08-19 10:36:34 69

原创 线性筛求欧拉函数

对于线性筛求欧拉函数的讲解,该文章中细致的描述了线性筛求欧拉值和线性筛求素数的区别。

2023-08-18 20:25:24 390

原创 AcWing 198. 反素数(约数)

关于素数的扩展知识

2023-08-17 15:56:54 51 1

原创 AcWing 200. Hankson的趣味题(最大公约数)

关于约数的运用和扩展

2023-08-17 15:53:06 52 1

原创 Acwing 196. 质数距离

关于质数的特殊性质

2023-08-17 15:45:03 60 1

原创 算法学习笔记【图论-邻接表-单源最短路】

对于一个有向图邻接矩阵邻接表对于一个无向图,我们一般将无向边看作两条方向相反的有向边,从而采用与有向图一样的储存方式。因此,我们解决无向图是按照有向图的方式进行解决。长度为nnn的表头数组 head 记录了从每个节点出发的第一条边在ver和edge数组中的储存位置,长度为m的边集数组ver和edge记录了每条边的终点和边权,长度为m的数组模拟了链表指针,表示从相同节点出发的下一条边在ver和edge数组中的储存位置。邻接表的空间时间复杂度为OnmO(n+m)Onm。

2023-08-14 15:50:41 121

原创 算法笔记【并查集】

并查集:是一个可以动态维护若干个不重叠的集合,并支持合并与查询的数据结构。详细的说,并查集包括如下两个基本操作。find:查询一个元素属于哪一个集合Merge:把两个集合合并成一个大集合需要定义集合的表示方法:在并查集中,我们采用“代表元”法,即每个集合选择一个固定的元素,作为整个集合的“代表”。维护一个数组fff,用fxf[x]fx保存元素xxx所在集合的“代表”。这种方法可以快速查询元素的归属集合,但在合并时需要修改大量元素的fff值,效率很低。

2023-08-11 15:31:39 153 1

原创 动态规划(背包九讲)

对于背包问题的一个系统性的介绍,内容比较详细,并且还描述了分析方法,比较容易理解。

2023-08-06 23:31:16 209 2

原创 组合数问题

该篇是讲给定一个数 n,让求最少有几个数能组合出 n 以内的所有数。

2023-08-05 10:44:08 97 1

原创 P1928 外星密码 (递归)

有了防护伞,并不能完全避免 2012 的灾难。地球防卫小队决定去求助外星种族的帮助。经过很长时间的努力,小队终于收到了外星生命的回信。但是外星人发过来的却是一串密码。只有解开密码,才能知道外星人给的准确回复。解开密码的第一道工序就是解压缩密码,外星人对于连续的若干个相同的子串 XX 会压缩为 [DX] 的形式(D 是一个整数且 1≤D≤99),比如说字符串 CBCBCBCB 就压缩为 [4CB] 或者[2[2CB]],类似于后面这种压缩之后再压缩的称为二重压缩。如果是 [2[2[2CB]]] 则是三重的。

2023-07-24 15:49:45 190

原创 算法学习笔记【树状数组】

树状数组(Binary Index Tree, BIT)是很多竞赛队员心中最简洁优美的数据结构之一。单点修改:更新指定点的数据区间查询:查询指定区间内的数据的和当然,树状数组的作用远不止这些,这里只讨论基本的数据结构。但是树状数组的操作比较局限,虽然代码比线段树少,但却没有线段树进行的操作多,我也写过一个线段树的博客,有兴趣的可以了解一下线段树学习笔记洛谷:P3374 【模板】树状数组 1。

2023-07-14 18:49:16 60 1

原创 算法学习笔记【线段树】

线段树(Segment Tree)几乎是算法竞赛最常用的数据结构了,它主要用于维护区间信息(要求满足结合律)。与树状数组相比,它可以实现 O(log⁡n) 的区间修改,还可以同时支持多种操作(加、乘),更具通用性。线段树就是一棵二叉平衡树,根节点代表某一段区间和,越往下区间越小,直到区间为的长度为1的时候结束(叶子节点)。洛谷:P3372 【模板】线段树 1。

2023-07-14 00:57:14 100 1

原创 dijkstra算法+迷宫探索例题(牛客)

Dijkstra 算法是求一个图中一个点到其他所有点的最短路径的算法,是一个基于「贪心」、「广度优先搜索」、「动态规划」求一个图中一个点到其他所有点的最短路径的算法,时间复杂度 O(目前我了解的dijkstra算法可以解决两类问题,一种就是该题这样的,还有一种就是邻接矩阵。每次从 「未求出最短路径的点」中取出距离距离起点最小路径的点,以这个点为桥梁刷新「未求出最短路径的点」的距离模板代码:求1到n点的距离int n,m,k;int djs[N];// 存储 1到 N这两个点之间的最短距离。

2023-07-13 16:13:42 311 1

原创 AcWing: 139. 回文字串的最大长度 hash和manacher算法

题解写的很详细,为什么这个做,怎么做,为什么能想到这个,都写的很清楚,一看就会。

2023-07-10 23:09:40 162 1

原创 双指针的深度理解 缩减搜索空间

同样的思路,我们来看只动 i 的情况,按照上一个计算当我们计算到了第二阶段,sum = A[1] + A[5] ,如果sum < target, 那么当我们移动 j 的时候,因为 sum = A[1]+A[5], 那么sum < A[1] + A[4]、sum < A[1] + A[3] ........ 所以无论怎么移动 j 都无法得到结果。所以,只能移动 i ,那么我们就将 i 进行加一。当我们遇到双指针的时候,有些简单的我们可能会写,但一遇到难点的却又无从下手,那是因为我们没有理解双指针的性质。

2023-07-08 21:01:48 74 1

原创 leetcode: 918.环形子数组的最大和 单调队列或Kanade

该题我觉得可用三种算法来写。

2023-07-07 17:31:04 232 1

原创 AcWing: 138.兔子与兔子 和 字符串hash的介绍

该题用到的算法是哈希;简单来说就是把任意输入通过特定方式(hash函数) 处理后 生成一个值。这个值等同于存放数据的地址,这个地址里面再把输入的数据进行存储。这个hash函数又叫散列函数,会有一些常用的构造散列函数的方法,但是处理结果值可能相同,那就叫冲突,冲突也有常用的冲突常用的冲突解决方法。

2023-07-06 18:22:26 101 1

原创 Acwing: 146.序列 二叉堆算法

该题运用的算法是二叉堆,堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小)。当根节点保存堆中最大值时,称为大根堆;反之,则称为小根堆。二叉堆(Binary Heap)是最简单、常用的堆,是一棵符合堆的性质的完全二叉树。它可以实现 O(log⁡n) 地插入或删除某个值,并且 O(1) 地查询最大(或最小)值。

2023-07-04 19:28:35 53

原创 Acwing :最大异或对 Trie树扩展

Tire扩展题,Acwing:最大异或对

2023-07-03 16:49:17 71 1

原创 时间复杂度

常用的时间复杂度按照耗费的时间从小到大依次是:O(1)

2023-03-11 17:23:07 111

原创 迷宫问题(广度优先搜索BFS与最短路径)

它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。一个5 × 5的二维数组,表示一个迷宫。左上角到右下角的最短路径,格式如样例所示。

2023-02-12 13:54:54 270 1

原创 仙岛求药 c++ bfs,初学者

少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶。叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发现仙药摆在了迷阵的深处。迷阵由 M×N 个方格组成,有的方格内有可以瞬秒李逍遥的怪物,而有的方格内则是安全。现在李逍遥想尽快找到仙药,显然他应避开有怪物的方格,并经过最少的方格,而且那里会有神秘人物等待着他。1) '@':少年李逍遥所在的位置;3) '#':有怪物的方格;输出一行,该行包含李逍遥找到仙药需要穿过的最少的方格数目(计数包括初始位置的方块)。

2023-02-11 20:06:26 375 1

空空如也

空空如也

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

TA关注的人

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