- 博客(89)
- 资源 (1)
- 收藏
- 关注

原创 算法基础 笔记
目录特殊知识:C++ STL第一章 基础算法1 排序1.1 快速排序1.2 归并排序2 二分2.1 整数二分2.2浮点数二分3 高精度3.1 高精度加法3.2 高精度减法3.3 高精度乘法(高精度乘以低精度)3.4高精度除法(高精度除以低精度)4 前缀和 和 差分4.1 前缀和4.2 差分5 双指针算法6 位运算7 离散化8 区间合并第二章 数据结构1 链表1.1 单链表1.2 双链表2 栈2.1 模拟栈2.2 单调栈3 队列3.1 模拟普通队列3.2 模拟循环队列3.3 单调队列4 KMP5 Trie树代
2022-01-07 16:36:51
660
原创 寒假训练——第四周(素数|因数)
A - 质因数分解B - Prime IndependenceC - DivisionD - Half of SameE - 分解因数简单质因数题目,适合新手小白
2022-08-28 19:29:19
291
原创 寒假训练——第三周(背包DP)
01背包,完全背包,多重背包,多重背包两种优化,分组背包,背包问题求方案数,背包问题求具体方案,你需要的这里都有,欢迎大神指点!
2022-08-25 22:40:23
397
原创 寒假训练——第三周(线性DP)
线性DP基础题,包含数字三角形,LIS,LCS,背包问题等模型,和背包问题求方案数,LIS求方案数扩展内容等,适合新手小白萌新,欢迎大家来挑战
2022-08-24 17:19:06
243
原创 [HAOI2008]移动玩具(五行核心代码)
将 4x4 的矩阵映射为 0~15 的 16 位二进制数。并实施 change 交换相邻两位数字。作用:交换二进制表示的两位数。
2022-08-20 14:23:04
290
原创 技巧与思想——位运算
通过无限次的交换,数组中的任何数可以与其他任何数 进行 & 操作,如此我们仅需判断,数组中的每一个数中的每一位是否有。如此操作(将所有数&得出答案)即可得出最小的答案。数字偶数次,异或操作( ^ ) 中偶数次的数相抵消。即、两数据相乘也会溢出,用龟速乘化乘法为加法。) 实现题目的高低位互换,或 () 操作 实现高低位拼接到一起。存在,若存在则答案的这位为。long long 范围为。数据范围为:2^32次方。位运算的 移位操作 (...
2022-08-17 13:19:55
283
原创 寒假训练——第一周(STL)
本篇设计STLSTLSTL中的 栈(A,B)(A, B)(A,B),优先队列(C)(C)(C),以及bitsetbitsetbitset(D)(D)(D)
2022-08-16 19:07:26
260
原创 寒假训练——第一周(枚举)
折半查找,先枚举两个数的和,保存在 hash 表中,再枚举另外两个数的和。map保存最近的一次,每一次询问输出map[x],并更新其他数。0时特判为6,其他打表的出结论,查表判断是否成立。必须手写哈希,STL 会 TLE。枚举每一种砝码的情况判断即可。打表,枚举每一种情况。...
2022-08-16 13:35:40
143
原创 主席树(可持久化权值线段树)的相关知识
即、每修改一个节点,我们就创建一个新的副本,并在副本的基础上进行修改。遍历区间的每一个元素,每遍历一个我们便创建一个新版本即。操作,维护此时的树与前一个树的差异即可。每个版本我们都认为他是一颗线段树。因此其他相同节点是各个版本共用的。因为版本间只有若干节点的不同。版本中二分查找节点数量恰好为。用前缀和记录区间中的点的数量。(一般空间都可以满足的)数值较大,节点数比较小。之间插入的数,即、第。版本之间改变了什么数。...
2022-08-10 18:56:28
433
原创 平衡树相关知识:
左子树中的元素一定小于根节点,右子树的元素一定大于根节点,若有相同数则用。不影响性质,并且在旋转过后,跟旋转方向相同的子节点变成了原来的根节点。(树堆)是一种弱平衡的二叉搜索树。它同时符合二叉搜索树和堆的性质,在不影响搜索树性质的前提下,把和旋转方向相反的子树变成根节点。当数据完全升序或降序时,退化成一条链,时间复杂度。(如左旋,旋转完之后的左子节点是旋转前的根节点)后继(中序遍历的前一个位置,后一个位置)一组数据经过堆的维护可以形成确定唯一的。(如左旋,就是把右子树变成根节点)容器内部封装为平衡树。...
2022-08-10 18:48:48
480
原创 字符串匹配之KMP讲解 及 与C++string类中的substr()的时间复杂度比较
字符串截取函数字符串中查找子串,是前缀函数的一个典型应用字符串中查找子串,是前缀函数的一个典型应用字符串中查找子串,是前缀函数的一个典型应用。
2022-08-10 18:31:25
4282
原创 线段树知识整理
线段树是算法竞赛中常用的用来维护区间信息的数据结构。线段树可以在O(logN)O(logN)O(logN)的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。......
2022-08-06 16:51:21
922
原创 2022河南萌新联赛第(三)场:河南大学
等效于三个同余同时成立a≡b(modx)&&b≡c(modx)&&c≡a(modx)我们可知(a-b)/x一定为整数(即、x|(a-b)),所以只需令x为(a-b)的因数即可。三个等式同时成立,即、x为gcd(a-b,b-c,c-a)的因数(为最大公约数的因数,则三等式同时成立)可推出(x|(a-b)&&x|(b-c)&&x|(c-a))...
2022-07-24 18:48:39
173
原创 Codeforces Round #809 (Div. 2)
选择一部分偶数位置+一部分奇数位置,(其中,偶数位置和奇数位置都可以为0,变成全偶数,或全奇数位置状态)总数为奇数时,一定为每个偶数楼层为cool,所以求出将所有的偶数位置成立的最小值。在任意的偶数位置,可在该偶数的右侧选择一个奇数位置,此后所选都是奇数位置,即。只要相同的数字的两者相距为奇数,两者即可叠在一起。...
2022-07-19 14:57:13
190
原创 Codeforces Round #806 (Div. 4)
目录官方题解A. YES or YES?B. ICPC BalloonsC. CypherD. Double StringsE. Mirror GridF. Yet Another Problem About Pairs Satisfying an InequalityG. Good Key, Bad Key点击跳转官方题解A. YES or YES?思路:略代码如下:B. ICPC BalloonsB. ICPC Balloons思路:略代码如下:C. CypherC. Cypher思
2022-07-13 13:18:45
989
9
原创 C - Canine poetry (关于时间复杂度的细节)
C - Canine poetry思路:只需判断长度为2,或长度为3的字符串即可。在第8个点TLE了,,,TLE代码如下:如果细看,会发现思路正确,时间复杂度为 O(n),貌似没什么毛病。但是很不幸,TLE了,本来以为要优化成O(logn),即、i += 2,但,本人实力有限,优化过后,WA2,,,然后就去看题解,此代码为仿照题解的代码仿题解代码如下:貌似思路相同,时间复杂度都是O(n),,,于是,开始控制变量法判断是哪个因素使我的代码TLE判断过程如下第一个因素:scanf 与 cin 未解除
2022-07-09 12:29:06
624
原创 Codeforces Round #804 (Div. 2)
目录官方题解A. The Third Three Number ProblemB. Almost Ternary MatrixC. The Third Problem点击跳转:官方题解A. The Third Three Number Problem思路:⊕(异或) 又称不进位加法,所以:对于 (a⊕b)+(b⊕c)+(a⊕c) 的最后的一位而言(a⊕b)+(b⊕c)+(a⊕c) = a + b + b + c + a + c = 2*(a + b + c) 故:当 n 为奇数时,无解当 n 为偶数时:知:
2022-07-05 11:31:05
447
原创 AcWing 第 56 场周赛
目录4482. 分组4483. 格斗场4484. 有限小数4482. 分组思路:找到每个数的最大次数,该数据中的最大次数就是最大分组数代码如下:4483. 格斗场4483. 格斗场思路:设置原数组的元素数组和该元素的数量数组,降序排列元素组,离散化为原数组。明确几点:1)存在比本数大的数且符合题目规则,则本数的数量清零。2)想要存最小的数量,即将所有可以删去的元素都删去。即、将每个数的可以删去的数都删去,即判断该数之后的 K 范围的数,可以简化为判断每相邻的两个数是否可以删去。代码如下:44
2022-06-19 22:49:19
241
原创 Codeforces Round #799 (Div. 4)
目录官方题解A. MarathonB. All DistinctC. Where's the Bishop?D. The ClockE. Binary DequeF. 3SUMG. 2^SortH. Gambling点击跳转:官方题解A. Marathon思路:略代码如下:B. All DistinctB. All Distinct思路:先将结果定义为所有的不重复数字,将同一个数多于1的部分删去,若删去的部分为奇数,则在结果中再删去一个,可以用:用 map 离散化一下代码如下:C. Wher
2022-06-16 11:45:36
884
1
原创 Codeforces Round #797 (Div. 3)
目录官方题解A. Print a Pedestal (Codeforces logo?)B. Array DecrementsC. Restoring the Duration of TasksD. Black and White StripeE. Price MaximizationF. Shifting StringG. Count the Trains点击跳转:官方题解A. Print a Pedestal (Codeforces logo?)思路:分三种情况讨论即可代码如下:B. Array
2022-06-09 22:27:48
702
原创 KMP算法经典应用——“循环节”
题目链接:141. 周期注意:此题字符串是由完整的循环节组成,即不存在末尾为循环节的一部分的情况思路:找到最大与前缀相等的后缀,举例:蓝,绿为原字符串,都分割为5个部分,每部分为循环节上方的括号与下方的括号为等于前缀的最大后缀,即 ne[i] ,我们可以知道蓝绿两线之间的红线为前缀与后缀的部分对应相等,黑线为两字符串本来就相等的地方,如此我们可将红黑连接到一起,即、所有的部分都相连,即所有的部分都相等!那么循环节即为,上方的未括号部分或下方的未括号部分,即、i - ne[i] (下方的部分)那么循环节出现的
2022-06-08 22:01:26
1109
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人