自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AcWing我觉得需要反复品味思路的题

2026-03-06 12:38:20 36

原创 动态规划专题

在一个数字序列中,找到一个方向的递增或递减序列,且该序列长度最长。

2026-03-01 16:21:30 880

原创 STL容器支持的内联函数(易忘记混淆版)

mp.find(2) //从前往后找,若找到,返回指向该处的迭代器;反之,返回迭代器mp.end()st.count(2);//返回key为2的个数(map中只可能是0或者1)注意:没找到返回-1!个数n+元素elem。

2025-10-12 19:14:23 186

原创 最短路问题算法合集

核心思路:dist数组存储起点1到n的最短距离。

2025-09-08 18:44:49 176

原创 归并排序算法

分治。

2025-08-19 10:13:18 161

原创 c/c++标准库的一些函数

A-Za-z。

2025-08-18 21:46:09 202

原创 快速选择算法

核心:分治,快速排排序。

2025-08-18 19:46:30 185

原创 快速排序算法

核心思想:分治。

2025-08-17 12:36:39 122

原创 基础数据结构

基础数据结构

2025-08-16 20:51:49 254

原创 算法笔记·数学·扩展欧几里得算法

摘要:该问题要求对给定的n对正整数(ai,bi),使用扩展欧几里得算法求解满足ai×xi + bi×yi = gcd(ai,bi)的整数解(xi,yi)。算法通过递归地应用欧几里得算法,在回溯时更新x和y的值来获得解。实现时,当a%b=0时返回x=0,y=1;否则递归求解并调整x,y的值。该算法高效,时间复杂度为O(log min(a,b)),适用于大规模数据(n≤10^5)。示例代码展示了具体实现过程。

2025-05-25 17:04:00 509

原创 算法笔记·数学·快速幂求乘法逆元

摘要:本文介绍了求解模数乘法逆元的问题。给定n组整数ai和质数pi,要求计算ai模pi的乘法逆元。核心思路是利用费马小定理:当p为质数且a与p互质时,逆元为a^(p-2) mod p。通过快速幂算法实现高效计算,时间复杂度为O(log p)。若a是p的倍数则输出"impossible"。该方法适用于大数范围(1≤ai,pi≤2×10^9),每组数据可在对数时间内求解。代码演示了快速幂函数qmi的实现和主程序的输入输出处理。

2025-05-25 01:28:18 354

原创 算法学习笔记·数学·快速幂

本文介绍了使用快速幂算法计算a^b mod p的问题。给定n组数据,每组包含a、b、p三个整数,要求输出a^b mod p的值。核心算法通过将指数b分解为二进制形式,利用幂的平方性质将时间复杂度优化至O(logb)。代码实现包括预处理输入数据,调用快速幂函数进行计算,并对中间结果及时取模防止溢出。该方法适用于大规模数据(1≤n≤100000),且能高效处理大指数运算(1≤a,b,p≤2×10^9)。

2025-05-24 16:49:22 284

原创 算法笔记·数学·欧拉函数

摘要:本文介绍了求解欧拉函数的算法实现。欧拉函数ϕ(N)定义为1∼N中与N互质的数的个数。给定n个正整数ai,程序通过分解质因数的方法计算每个数的欧拉函数值。具体实现是:对于每个数a,先初始化结果为a本身,然后遍历其所有质因数i,将结果更新为res=res/i*(i-1),最后处理剩余的质因数(若a>1)。该算法时间复杂度为O(√a)每个数,适用于1≤ai≤2×10^9的范围。示例输入3个数3/6/8时,正确输出2/2/4。

2025-05-24 15:21:50 319

原创 算法笔记·数学·最大公约数

摘要:本文介绍了如何计算多个整数对的最大公约数(GCD)。通过欧几里得算法(辗转相除法)实现,其核心原理是递归调用gcd(a,b)=gcd(b,a%b)直到余数为0。程序首先读取整数对的数量n,然后对每对数应用该算法并输出结果。该方法高效简洁,适用于大规模数据(n≤10^5,数值≤2×10^9)。示例输入输出展示了算法的正确性,代码实现仅需10行左右的核心逻辑。

2025-05-24 15:12:01 374

原创 算法笔记·数学·约数之和

摘要:该问题要求计算n个正整数乘积的约数之和,并对1e9+7取模。解决思路是将每个数分解质因数,统计所有质因数的次数,然后利用约数之和公式:(p1^0+p1^1+...+p1^a1)...(pk^0+pk^1+...+pk^ak)。代码实现通过质因数分解和快速计算等比数列项来完成,最终结果取模输出。时间复杂度主要取决于质因数分解过程。输入样例3个数2、6、8,输出其乘积96的约数之和252。

2025-05-24 14:58:07 282

原创 算法笔记.约数个数

给定 n 个正整数 ai,请你输出这些数的乘积的约数个数,答案对 109+7 取模。

2025-05-05 22:39:42 286

原创 算法笔记.求约数

约数直接算出来,相同约数只取一个。注意:约数只需要枚举到。

2025-05-04 22:05:14 442

原创 算法笔记。质数筛算法

给定一个正整数 n,请你求出 1∼n 中质数的个数。

2025-05-03 20:02:39 445

原创 算法笔记.分解质因数

【代码】算法笔记.分解质因数。

2025-05-02 17:37:37 338

原创 算法笔记.试除法判断质数

避免溢出的处理 i <= x/i。

2025-05-01 16:30:12 287

原创 算法笔记.匈牙利算法求最大匹配

给定一个二分图,其中左半部包含 n1个点(编号 1∼n1),右半部包含 n2 个点(编号 1∼n2),二分图共包含 m 条边。数据保证任意一条边的两个端点都不可能在同一部分中。请你求出二分图的最大匹配数。二分图的匹配:给定一个二分图 GG,在 GG 的一个子图 MM 中,MM 的边集 {E}{E} 中的任意两条边都不依附于同一个顶点,则称 MM 是一个匹配。二分图的最大匹配:所有匹配中包含边数最多的一组匹配被称为二分图的最大匹配,其边数即为最大匹配数。

2025-05-01 11:29:44 237

原创 算法笔记.染色法判断二分图

给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。

2025-04-28 21:40:34 567

原创 算法笔记.kruskal算法求最小生成树

给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。

2025-04-28 11:19:38 394

原创 算法笔记.prim算法

给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图 G=(V,E),其中 V 表示图中点的集合,E 表示图中边的集合,n=|V|,m=|E|。由 V 中的全部 n 个顶点和 E 中 n−1 条边构成的无向连通子图被称为 G 的一棵生成树,其中边的权值之和最小的生成树被称为无向图 G 的最小生成树。

2025-04-28 09:59:19 335

原创 算法笔记.Floyd算法

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定 kk 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出impossible。数据保证图中不存在负权回路。

2025-04-24 23:22:46 356

原创 算法笔记.spfa算法(bellman-ford算法的改进)

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,。请你求出 1 号点到 n 号点的最短距离,如果无法从 1 号点走到 n 号点,则输出impossible。数据保证不存在负权回路。

2025-04-24 23:02:36 465

原创 算法笔记.bellman_ford求有边数限制的最短路径

给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,。请你求出从 1 号点到 n 号点的最多经过 k 条边的最短距离,如果无法从 1 号点走到 n 号点,输出impossible。注意:图中可能。

2025-04-14 12:58:02 794

原创 算法笔记.堆优化最短路

对优化dijkstra

2025-04-13 20:44:25 328

原创 算法笔记.dijkstra最短路径

dijkstra

2025-04-13 18:01:19 185

原创 算法笔记.拓扑排序.有向图的拓扑排序

若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。接下来 m 行,每行包含两个整数 x 和 y,表示存在一条从点 x 到点 y 的有向边 (x,y)。给定一个 n 个点 m条边的有向图,点的编号是 1 到 n,图中可能存在重边和自环。请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。共一行,如果存在拓扑序列,则输出任意一个合法的拓扑序列即可。bfs结束时的判断写法,避免if ,else使用,更简洁。

2025-04-11 10:51:25 246

原创 算法笔记.数组模拟单链表/邻接表

数组模拟单链表

2025-04-10 19:49:45 390

原创 算法笔记.BFS.八数码

bfs

2025-04-09 00:09:45 260

原创 算法笔记.BFS.走迷宫最短路

BFS走迷宫最短路长

2025-04-08 11:43:12 292

原创 算法笔记.DFS.排列数字

dfs.数字排序

2025-04-07 16:18:58 238

原创 算法笔记.散列(哈希)表

1.开放寻址法:2.拉链法:维护一个集合,支持如下几种操作:现在要进行 N 次操作,对于每个询问操作输出对应的结果。第一行包含整数 N,表示操作数量。接下来 N 行,每行包含一个操作指令,操作指令为 , 中的一种。对于每个询问指令 ,输出一个询问结果,如果 xx 在集合中出现过,则输出 ,否则输出 。每个结果占一行。1≤N≤ −109≤x≤ 输出样例: 我的代码: 一、开放寻址法: 二、拉链法: 参考文献: Acwing.第二章.模拟哈希表 B站视频@蓝不过海呀.

2025-04-06 15:51:38 340

原创 算法笔记&数据结构.堆排序&堆

堆&堆排序

2025-04-06 09:35:33 320

原创 算法笔记.并查集.合并集合

并查集

2025-04-04 16:24:50 255

原创 算法笔记.KMP算法.找子串位置

KMP

2025-04-02 17:08:34 213

原创 算法笔记.区间和并

区间合并

2025-03-29 18:19:04 231

原创 算法笔记.离散化.区间和

jsbjB。

2025-03-29 15:35:42 438

空空如也

空空如也

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

TA关注的人

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