自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并查集和带权并查集及分类并查集

并查集是一种集并集查询于一体的数据结构,它的时间复杂度是Oαn)),阿尔法函数是阿克曼函数的反函数,返回值一般不超过3,数很大时一般不超过7,因此并查集的均摊时间复杂度接近O(1)。一般用来判断两个点是否相通,也可以用来判环,当相通的两个点连接时就会出现环,环的长度是两个点分别到根结点的路径之和加一。

2024-03-24 08:46:43 764

原创 折半搜索.

把比赛平均分成两份,进行完第一次搜索后将结果排个序,因为合并时要用到二分查找,然后进行第二次搜索,搜出一个答案用二分查找出最大是哪个匹配方式,累加它的编号(因为排了序),最后输出答案。先将要搜索的部分分成两部分,然后进行第一部分的搜索,将结果存起来,再将需要做的操作做完,最后进行第二次搜索,将结果直接与第一次的匹配,统计答案并输出。折半搜索是一种技巧,实际上就是将一个次搜索过程分成两次进行,然后将两次搜索的结果合并,这种操作能大大减少用时。· 价格 100 的比赛和第一场价格 500 的比赛。

2024-03-16 21:50:44 911

原创 Codeforces Round 719 (Div. 3)除F2题外补题报告

现在小D想要从(1,1)移动到(n,m),它可以以如下两种方式移动:在任意两个相邻且参数均不为−1的格子间移动,花费为w,在有传送门的两个格子 (i,j)和(x,y) 间移动,花费为。给定 n,t,k(由于这里是简单版,保证 t=1,即t没啥用),有一个长度为n的标号为1⋯n 的仅含01的数组,你每次可以询问l到r的和,需要得出数组中第k个0的下标。可以用二分枚举位置,通过询问结果来判断前面有多少个0,如果0的数量大于等于k,说明mid要变小,l=mid+1,反之,r=mid。否则,这个格子可以通过,若。

2024-03-09 22:44:46 1826

原创 Codeforces Round 752 Div. 3 除E题补题报告

Polycarp有x个红糖和y个蓝糖,现在他想用这些糖果做一些礼品盒,但规定每个礼品盒里必须有a个红糖、b个蓝糖或b个红糖、a个蓝糖。给定两个正整数 l,r(l<r),将 l 不断加1 直到 l=r,求出这一过程中 l 发生变化的位数总数。然后询问,是否存在一种操作方法,使得在恰好 k 次操作后,a=b。二分套数,判断mid是否合法,设方案一t套,方案二(mid-t)套。选择一个能整除 a 的大于1的整数 c,用 a/c替换 a。选择一个能整除 b 的大于1的整数 c,用 b/c替换 b。

2024-02-04 20:21:13 868

原创 KMP算法

KMP算法由三位大佬Knuth,Morris,Pratt创造出来。KMP算法是用来在主串中计算模式串出现的次数。其核心思想是创建一个next表,然后再用主串与模式串匹配,如果失配,则通过next表跳过不可能匹配成功的位置,找的新位置进行匹配。时间复杂度O(n+m),其中n为主字符串的长度,m为模式字符串的长度。

2024-02-03 21:14:35 524

原创 Codeforces Round 764 Div. 3 前五题补题报告

记录字符出现次数,记录相同字符的对数,记录单个字符的个数,并将成对字符平均分成k份,然后将每份的对数*2(初始答案),剩余的劈成两个单独字符,将数量加入单个字符个数中,看是否够每个回文串中心放一个,够则答案+1,最后输出答案。因为2,3可以凑出大于一的任何整数,所以我们可以只拆长度为2,3的字串,我们可以先将所有长度为2,3的字串都记录下来,然后通过一遍DP将可能的所有情况推出来,最后从后往前记录一种答案。记录字符出现次数,记录相同字符的对数,记录单个字符的个数,并利用那两个数进行判断(

2024-02-01 19:55:32 321

原创 哈希冲突.

哈希冲突是利用哈希函数时,对哈希值取模(哈希值往往很大,免不了取模),出现了哈希值重复的情况,这样会导致程序出现差错。再将两次的哈希值存入pair数组中进行排序,排完序后挨个遍历一遍,判断是否重复,不重复ans+1。所谓双哈希,就是进行两遍哈希,换一下底数和模数,这样可以讲哈希函数的错误率降低到0.001%给你一个仅由小写字母组成的长度为 n 的字符串,问你其中有多少个不同的长度为 L 的子串。经过科学的计算,执行一次哈希函数的错误率为==。这样的错误率是不容小觑的。对于 100% 的数据,

2024-01-31 18:29:01 349

原创 字符串哈希

取余,余数是几,就放在下标为几的位置上。判断是否存在时,将判断的数取余那个数,到对应下标去看就行了。(我个人还是跟喜欢方法一的,因为方法二受数组空间的限制,而且速度慢,而方法一只是占用空间有点大)字符串的占用空间大,比较时间长,在某些时候十分难用,所以可不可以把字符串变成数字呢?第一步,将所有字符转成对应ASCLL码值,变成一个128进制的数。如1,13,27,10,59五个数,我们选择5来作模数。如果将最后一个数改成58,与13取余5的值相同怎么办呢?字符串长度不超过100000。

2024-01-30 20:02:47 372 1

原创 单调队列及单调栈

我们可以发现,构建递增栈:当要入栈元素可以顺利入栈时,此时的栈顶为要入栈元素左侧第一个小于它的数;构建递增栈,当要入栈元素可以顺利入栈时,此时的栈顶为要入栈元素左侧第一个小于它的数。有一个n×m的整数组成的矩阵,现请你从中找出一个k×k的正方形区域,使得该区域所有数中的最大值和最小值的差最小。这就是在求每个数左边第一个大于他的数和右边第一个大于它的数,然后向求出来的塔增加接收到的能量,最后求最大值。​​ 的能量,发出的能量只被两边最近的且比它高的发射站(就是有序的栈,分为递增栈和递减栈。

2024-01-29 20:56:38 812

原创 矩阵及矩阵快速幂

矩阵是一个由实数组成的长方形集合。行数和列数相等的矩阵叫做方阵。下面就是一个方阵。

2024-01-06 21:29:10 1833 1

原创 欧拉函数.

欧拉函数用符号φn∑i1ngcd⁡in1n1−1p11−1p2⋯1−1pmnp1−1p1p2−1p2⋯pm−1pmφn∑i1n​gcdin1n1−p1​1​1−p2​1​⋯1−pm​1​np1​p1​−1​p2​p2​−1​⋯pm​pm​−1​(m是n的质因子个数)

2023-12-23 21:22:06 833 1

原创 逆元 。

数学上认为mod就是在一个环上做运算,可是要是运算数中出现小数,并不在环上怎么办?于是科学家设想出一个数来代替它,叫逆元,记作invxinv(x)invx。a∗invap1a∗inva))p1时间限制:1秒 内存限制:128M。

2023-12-09 21:20:07 924 1

原创 拓扑排序。

输入一个n个点m条边的有向图(可能会有重边)判断是否有环。有环输出NO,无环输出YES。本题是多组输入,n=0结束。

2023-12-02 20:58:31 286

原创 Codeforces Round 900 Div.3 前五题补题报告

Codeforces Round 895 Div. 3 前六题补题报告得分情况补题情况错题分析C题题目大意初次思路正解思路正解代码错误原因D题题目大意初次思路正解思路正解代码E题题目大意初次思路正解思路正解代码错误原因得分情况A题ACB题ACC题全部TLED题过了前9组,剩下的TLEE题过了前11组,剩下的TLE补题情况全部AC错题分析C题题目大意有 t 组数据。每组数据给定 n,k,x。请你判断能否在 1∼n 中不重复的恰好选出 k 个数使得这 k 的数的和为 x。可以选

2023-11-25 20:10:00 1371

原创 链式前向星

链式前向星是用链表前插法实现的一种存储图、树等由点组成由边连接的数据结构的方法。由表头、存值域、指针域组成。表头是让我们遍历链表的第一个位置。存值域存的是邻接点的编号。指针域是存的下一个邻接点的地址,最后一个指向NULL(空)。链式前向星的定义链式前向星的写法题目:Tree Cutting。

2023-11-18 21:46:56 59 1

原创 Codeforces Round 895 Div. 3 前六题补题报告

我们可以定义一个优先队列,每次将害怕它的动物的总价格最小的动物卖掉(因为当这个动物害怕一个动物时这个动物的价格更高,这样可以使损失最小),最后将剩下的动物原价卖出。因为要使差最大,所以先求出x,y各选几个数(注:因为x,y的公倍数的位置上的数都要加进去所以放哪个数都无所谓,因此要去掉两数n以内的所有公因数),然后。设x为r(l)的一个除1和本身外的因数,(r-x,x)(或(l-x,x))就是一组解。),然后将大的数都往sum_x里加,将小的数都往sum_y里加,使结果最优。现在我要将这些动物全部卖掉。

2023-11-04 21:21:35 29 1

原创 树状数组入门&树状数组进阶

树状数组是一种解决动态区间和的数组。它的查询修改时间复杂度严格小于等于O(nlogn)。它的操作用到了lowbit函数,它求的是这个数的二进制最右边的1所对应的数值。通过观察下标二进制可知,lowbit(下标)为C[下标]可以分解成的数组元素个数,如:C[8]=C[7]+C[6]+C[4]+A[8];。

2023-10-28 22:11:49 35 1

原创 ST表——题目:A Magic Lamp

时间限制:1秒 内存限制:128MST表是一种用来处理可重复贡献问题的特殊动态规划算法。什么是可重复贡献问题呢?就是一个元素多次参与答案的计算,不影响结果的问题就是可重复贡献问题。如:区间最大值,区间最小值,区间最小公倍数,区间最大公约数。ST表的特别之处在于它的f[i][j]表示从编号为i的元素开始2j2^j2j个元素的最优答案。但要查的区间元素数往往不是2的次方,怎么办呢?

2023-10-10 20:31:15 27 1

原创 priority_queue和重载运算符

题目:股票priority_queue(优先队列)重载运算符。

2023-09-23 21:13:32 54 1

原创 STL数据结构整理

这次我介绍了STL数据结构的常用函数和如何用迭代器遍历数据结构。

2023-09-16 21:32:05 53 1

原创 二叉树的存储和遍历

题目:二叉树的遍历二叉树的存储二叉树的遍历。

2023-06-23 12:23:02 81 1

原创 可达鸭金牌学院J2知识整理

这次我主要整理了可达鸭金牌学院J2知识。

2023-06-16 21:24:48 54 1

原创 树的重心1——树的重心

题目:树的重心1树的重心的特征查找树的重心的方法。

2023-06-04 14:01:59 204

原创 训练军队——树的直径2

题目:训练军队知识点:BFS(广(宽)度优先搜索)找树的直径的方法。

2023-05-26 21:01:23 53 1

原创 树的直径1——树的直径

树中最远的两个点的距离是“树的直径”。题目:树的直径1。“树的直径”的定义。关于“树的直径”的性质。查找“树的直径”的方法。

2023-05-19 20:24:41 99 1

原创 二叉搜索树——BST(二叉搜索树)

这次我主要讲了以下内容题目:二叉搜索树二叉搜索树的性质二叉搜索树的构造方法。

2023-04-28 21:17:23 41

原创 吝啬的国度——树的存储和信息表示

这次我主要讲了以下内容题目:吝啬的国度(树的存储+树的信息表示+宽(广)度优先搜索)树用链式前向星存储树的信息表示。

2023-04-22 12:09:52 122 2

空空如也

空空如也

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

TA关注的人

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