算法
文章平均质量分 64
一些在写题中遇见的算法
前 方
这个作者很懒,什么都没留下…
展开
-
AcWing 788. 逆序对的数量(归并排序)
基本思想归并排序是用分治思想,分治模式在每一层上有三个步骤:(1)分解:将n个元素分解成n/2个元素的子序列。(2)解决:用合并排序法对两个子序列递归排序。(3)合并:合并两个已排序的子序列得到排序结果。原创 2023-09-05 13:29:24 · 107 阅读 · 0 评论 -
最大公约数(gcd)和最小公倍数(lcm)
在坐标里,将点(0, 0)和(a, b)连起来,通过整数坐标的点的数目(除了(0, 0)一点之外)就是gcd(a, b)。则: gcd(a/m ,b/m)=gcd(a,b)/m。如果m是a和b的最大公约数,原创 2023-08-18 11:56:25 · 297 阅读 · 0 评论 -
最小生成树(Kruskal)克鲁斯卡尔算法
理论上,他们是 N 行,每行由 N 个用空格分隔的数组成,实际上,由于每行 80 个字符的限制,因此,某些行会紧接着另一些行。由 V中的全部 n个顶点和 E 中 n−1条边构成的无向连通子图被称为 G的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。当然,他需要你的帮助。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。共一行,若存在最小生成树,则输出一个整数,表示最小生成树的树边权重之和,如果最小生成树不存在则输出。原创 2023-08-14 16:18:09 · 626 阅读 · 1 评论 -
P1021 [NOIP1999 提高组] 邮票面值设计
可以验证当N=3,K=2时,7分就是可以得到的连续的邮资最大值,所以 MAX=7,面值分别为1分、3分。这题大概题意就是选k个数,用这k个数进行组合,k个数可以重复选取,但是所选的数的总数量不能超过n,然后求一个这k个数所能组成的最大值max,并且需要k个数能组成1~max中的所有数,这个max才是合法的。给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1至MAX之间的每一个邮资值都能得到。原创 2023-07-23 18:11:01 · 86 阅读 · 0 评论 -
AcWing100. 增减序列(差分)
给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一。求至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列可能有多少种。原创 2023-07-20 16:06:56 · 58 阅读 · 0 评论 -
2023河南萌新联赛第(二)场:河南工业大学
假设心形湖由1×\times×n个方格构成,RT在每个方格上放了一个心岩,每个心岩有一个照亮范围x,代表着这块心岩可以照亮它左边x个方格和右边x个方格,但不能照亮心岩所在的方格(假如一个心岩在第5个方格,x=2,那么他只能照亮第3,4和第6,7个方格),现在请你求出心形湖有多少个方格被照亮。在第4格放出水流后,水流会流向第3格,由于第3格高度比第4格低,所以水流继续向左流向第2格,因为平地水流只能流2格,所以到达第2格后水流停止,收获的小麦数量为1 + 4 + 5 = 10。第一行两个整数n,m。原创 2023-07-20 11:05:47 · 126 阅读 · 0 评论 -
约数问题
an的取法确定,每一个质数的指数的取法有(a+1)种取法,故 约数个数。输出一个整数,表示所给正整数的乘积的约数个数,答案需对 109+7109+7 取模。输出一个整数,表示所给正整数的乘积的约数之和,答案需对 109+7109+7 取模。给定 n个正整数 ai,请你输出这些数的乘积的约数个数,答案对 109+7 取模。给定 n个正整数 ai,请你输出这些数的乘积的约数之和,答案对 109+7 取模。利用辗转相除法,有数学公式的,这里不再推导,直接上模板。输出共 n行,每行输出一个整数对的最大公约数。原创 2023-07-17 18:48:29 · 65 阅读 · 0 评论 -
离散化(AcWing 802. 区间和)超详解
假定有一个无限长的数轴,数轴上每个坐标上的数都是 00。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。接下来,进行 m次询问,每个询问包含两个整数 l和 r,你需要求出在区间 [l,r]之间的所有数的和。原创 2023-07-15 11:59:30 · 222 阅读 · 0 评论 -
并查集(带题分析)
1,合并:将两个集合 合并2,询问:询问两个元素是否在一个集合中。原创 2023-07-13 18:22:45 · 662 阅读 · 0 评论 -
Rails
来源:牛客网Input。原创 2023-07-11 21:04:34 · 44 阅读 · 0 评论 -
快速幂(一看就懂)
是一种简单而有效的算法,可以在O(log n)的时间复杂度计算乘方。例如求3的10次方。原创 2023-07-10 22:51:29 · 44 阅读 · 0 评论 -
归并排序(数组)
比如有一个10个元素的数组,归并排序的思想就是先把这10个元素分成10组,然后两个相邻的元素结合,这时候就需要一个临时的数组来存储我们结合后的数组,结合的时候比较一下小的先进,这样我们就得到一个相对有序的数组(因为当一个数组完全进入临时数组另一个可能还没有完全进入所以要加一步直接把没有进入临时数组的元素直接加入),最后把临时数组内的元素再还给原数组为下次合并排序做准备。输入共两行,第一行包含整数 n。(1)分解:将n个元素分解成n/2个元素的子序列。输出共一行,包含 n 个整数,表示排好序的数列。原创 2023-07-07 21:18:14 · 134 阅读 · 1 评论 -
高精度加法模板
【代码】高精度加法模板。原创 2023-06-15 19:01:28 · 27 阅读 · 0 评论 -
二进制枚举(选数问题)
所有测试点满足1≤n≤15,1≤l≤r≤109,1≤x≤106,1≤ai≤106。给定一个包含 n个正整数 a1,a2,…第二行包含 n个整数 a1,a2,…算法(二进制枚举)(时间复杂度n*2^n)例题(acwing4954. 挑选)第一行包含四个整数 n,l,r,x。前 3个测试点满足 1≤n≤5。集合中可能存在数值相同的元素。请问,一共有多少种不同的选法。一个整数,表示不同选法的数量。原创 2023-05-13 17:16:11 · 63 阅读 · 0 评论 -
滑动窗口模板
【代码】滑动窗口模板。原创 2023-05-13 17:02:18 · 63 阅读 · 0 评论 -
二叉树的遍历(递归)
输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[1,2,3,6,7,11,14,4,8,12,5,9,13,10]二,589.N 叉树的前序遍历(力扣)原创 2023-07-04 23:21:22 · 194 阅读 · 0 评论