- 博客(27)
- 收藏
- 关注
原创 并查集和带权并查集及分类并查集
并查集是一种集并集查询于一体的数据结构,它的时间复杂度是Oαn)),阿尔法函数是阿克曼函数的反函数,返回值一般不超过3,数很大时一般不超过7,因此并查集的均摊时间复杂度接近O(1)。一般用来判断两个点是否相通,也可以用来判环,当相通的两个点连接时就会出现环,环的长度是两个点分别到根结点的路径之和加一。
2024-03-24 08:46:43
907
原创 折半搜索.
把比赛平均分成两份,进行完第一次搜索后将结果排个序,因为合并时要用到二分查找,然后进行第二次搜索,搜出一个答案用二分查找出最大是哪个匹配方式,累加它的编号(因为排了序),最后输出答案。先将要搜索的部分分成两部分,然后进行第一部分的搜索,将结果存起来,再将需要做的操作做完,最后进行第二次搜索,将结果直接与第一次的匹配,统计答案并输出。折半搜索是一种技巧,实际上就是将一个次搜索过程分成两次进行,然后将两次搜索的结果合并,这种操作能大大减少用时。· 价格 100 的比赛和第一场价格 500 的比赛。
2024-03-16 21:50:44
953
原创 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
1891
原创 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
914
原创 KMP算法
KMP算法由三位大佬Knuth,Morris,Pratt创造出来。KMP算法是用来在主串中计算模式串出现的次数。其核心思想是创建一个next表,然后再用主串与模式串匹配,如果失配,则通过next表跳过不可能匹配成功的位置,找的新位置进行匹配。时间复杂度O(n+m),其中n为主字符串的长度,m为模式字符串的长度。
2024-02-03 21:14:35
556
原创 Codeforces Round 764 Div. 3 前五题补题报告
记录字符出现次数,记录相同字符的对数,记录单个字符的个数,并将成对字符平均分成k份,然后将每份的对数*2(初始答案),剩余的劈成两个单独字符,将数量加入单个字符个数中,看是否够每个回文串中心放一个,够则答案+1,最后输出答案。因为2,3可以凑出大于一的任何整数,所以我们可以只拆长度为2,3的字串,我们可以先将所有长度为2,3的字串都记录下来,然后通过一遍DP将可能的所有情况推出来,最后从后往前记录一种答案。记录字符出现次数,记录相同字符的对数,记录单个字符的个数,并利用那两个数进行判断(
2024-02-01 19:55:32
354
原创 哈希冲突.
哈希冲突是利用哈希函数时,对哈希值取模(哈希值往往很大,免不了取模),出现了哈希值重复的情况,这样会导致程序出现差错。再将两次的哈希值存入pair数组中进行排序,排完序后挨个遍历一遍,判断是否重复,不重复ans+1。所谓双哈希,就是进行两遍哈希,换一下底数和模数,这样可以讲哈希函数的错误率降低到0.001%给你一个仅由小写字母组成的长度为 n 的字符串,问你其中有多少个不同的长度为 L 的子串。经过科学的计算,执行一次哈希函数的错误率为==。这样的错误率是不容小觑的。对于 100% 的数据,
2024-01-31 18:29:01
438
原创 字符串哈希
取余,余数是几,就放在下标为几的位置上。判断是否存在时,将判断的数取余那个数,到对应下标去看就行了。(我个人还是跟喜欢方法一的,因为方法二受数组空间的限制,而且速度慢,而方法一只是占用空间有点大)字符串的占用空间大,比较时间长,在某些时候十分难用,所以可不可以把字符串变成数字呢?第一步,将所有字符转成对应ASCLL码值,变成一个128进制的数。如1,13,27,10,59五个数,我们选择5来作模数。如果将最后一个数改成58,与13取余5的值相同怎么办呢?字符串长度不超过100000。
2024-01-30 20:02:47
439
1
原创 单调队列及单调栈
我们可以发现,构建递增栈:当要入栈元素可以顺利入栈时,此时的栈顶为要入栈元素左侧第一个小于它的数;构建递增栈,当要入栈元素可以顺利入栈时,此时的栈顶为要入栈元素左侧第一个小于它的数。有一个n×m的整数组成的矩阵,现请你从中找出一个k×k的正方形区域,使得该区域所有数中的最大值和最小值的差最小。这就是在求每个数左边第一个大于他的数和右边第一个大于它的数,然后向求出来的塔增加接收到的能量,最后求最大值。 的能量,发出的能量只被两边最近的且比它高的发射站(就是有序的栈,分为递增栈和递减栈。
2024-01-29 20:56:38
836
原创 欧拉函数.
欧拉函数用符号φn∑i1ngcdin1n1−1p11−1p2⋯1−1pmnp1−1p1p2−1p2⋯pm−1pmφn∑i1ngcdin1n1−p111−p21⋯1−pm1np1p1−1p2p2−1⋯pmpm−1(m是n的质因子个数)
2023-12-23 21:22:06
888
1
原创 逆元
数学上认为mod就是在一个环上做运算,可是要是运算数中出现小数,并不在环上怎么办?于是科学家设想出一个数来代替它,叫逆元,记作invxinv(x)invx。a∗invap1a∗inva))p1时间限制:1秒 内存限制:128M。
2023-12-09 21:20:07
999
1
原创 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
1416
原创 链式前向星
链式前向星是用链表前插法实现的一种存储图、树等由点组成由边连接的数据结构的方法。由表头、存值域、指针域组成。表头是让我们遍历链表的第一个位置。存值域存的是邻接点的编号。指针域是存的下一个邻接点的地址,最后一个指向NULL(空)。链式前向星的定义链式前向星的写法题目:Tree Cutting。
2023-11-18 21:46:56
127
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
62
1
原创 树状数组入门&树状数组进阶
树状数组是一种解决动态区间和的数组。它的查询修改时间复杂度严格小于等于O(nlogn)。它的操作用到了lowbit函数,它求的是这个数的二进制最右边的1所对应的数值。通过观察下标二进制可知,lowbit(下标)为C[下标]可以分解成的数组元素个数,如:C[8]=C[7]+C[6]+C[4]+A[8];。
2023-10-28 22:11:49
89
1
原创 ST表——题目:A Magic Lamp
时间限制:1秒 内存限制:128MST表是一种用来处理可重复贡献问题的特殊动态规划算法。什么是可重复贡献问题呢?就是一个元素多次参与答案的计算,不影响结果的问题就是可重复贡献问题。如:区间最大值,区间最小值,区间最小公倍数,区间最大公约数。ST表的特别之处在于它的f[i][j]表示从编号为i的元素开始2j2^j2j个元素的最优答案。但要查的区间元素数往往不是2的次方,怎么办呢?
2023-10-10 20:31:15
129
1
原创 树的直径1——树的直径
树中最远的两个点的距离是“树的直径”。题目:树的直径1。“树的直径”的定义。关于“树的直径”的性质。查找“树的直径”的方法。
2023-05-19 20:24:41
389
1
原创 吝啬的国度——树的存储和信息表示
这次我主要讲了以下内容题目:吝啬的国度(树的存储+树的信息表示+宽(广)度优先搜索)树用链式前向星存储树的信息表示。
2023-04-22 12:09:52
339
2
222222222222222222222222222222222222222222222
2024-10-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人