随笔分类 -  算法

分享必须掌握的高频算法
摘要:扩展欧几里得算法 给定 n 对正整数 ai,bi 对于每对数,求出一组 xi,yi 使其满足 ai×xi+bi×yi=gcd(ai,bi)。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含两个整数 ai,bi。 输出格式 输出共 n 行,对于每组 ai,bi,求出一组满足条件的 xi,yi 阅读全文
posted @ 2021-07-22 10:44 JK~ 阅读(42) 评论(0) 推荐(0)
摘要:快速幂 给定 n 组 ai,bi,p对于每组数据,求出 abiimodpii 的值。 输入格式 第一行包含整数 nn。 接下来 nn 行,每行包含三个整数 ai,bi,piai,bi,pi。 输出格式 对于每组数据,输出一个结果,表示 abiimodpiaibimodpi 的值。 每个结果占一行。 阅读全文
posted @ 2021-07-22 10:41 JK~ 阅读(51) 评论(0) 推荐(0)
摘要:筛数求欧拉函数 给定一个正整数 nn,求 1∼n1∼n 中每个数的欧拉函数之和。 输入格式 共一行,包含一个整数 nn。 输出格式 共一行,包含一个整数,表示 1∼n1∼n 中每个数的欧拉函数之和。 数据范围 1≤n≤1061≤n≤106 输入样例: 6 输出样例: 12 #include <ios 阅读全文
posted @ 2021-07-22 10:32 JK~ 阅读(49) 评论(0) 推荐(0)
摘要:欧拉函数 给定 nn 个正整数 ai,请你求出每个数的欧拉函数。 欧拉函数的定义 1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N)。 若在算数基本定理中,N=pa1pa2…pam,则: ϕ(N)= N×p1−1p1×p2−1p2×…×pm−1pm 输入格式 第一行包含整数 nn。 接下 阅读全文
posted @ 2021-07-22 10:29 JK~ 阅读(96) 评论(0) 推荐(0)
摘要:欧几里得算法 最大公约数 给定 n 对正整数 ai,bi,请你求出每对数的最大公约数。 输入格式 第一行包含整数 nn。 接下来 n 行,每行包含一个整数对 ai,bi。 输出格式 输出共 n 行,每行输出一个整数对的最大公约数。 数据范围 1≤n≤105 1≤ai,bi≤2×109 输入样例: 2 阅读全文
posted @ 2021-07-21 11:57 JK~ 阅读(36) 评论(0) 推荐(0)
摘要:参考埃及筛法的例题 线性筛法 #include <iostream> #include <algorithm> using namespace std; const int N = 10000010; int primes[N], cnt; bool st[N]; void get_primes(i 阅读全文
posted @ 2021-07-13 17:57 JK~ 阅读(51) 评论(0) 推荐(0)
摘要:筛法 筛质数 给定一个正整数 nn,请你求出 1∼n 中质数的个数。 输入格式 共一行,包含整数 nn。 输出格式 共一行,包含一个整数,表示 1∼n 中质数的个数。 数据范围 1≤n≤106 输入样例: 8 输出样例: 4 思想就是将每个数的倍数全部删掉,剩余的就是所有质数 未优化 #includ 阅读全文
posted @ 2021-07-13 17:38 JK~ 阅读(63) 评论(0) 推荐(0)
摘要:(2)分解质因数 分解质因数 给定 n 个正整数 ai,将每个数分解质因数,并按照质因数从小到大的顺序输出每个质因数的底数和指数。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一个正整数 ai。 输出格式 对于每个正整数 ai,按照从小到大的顺序输出其分解质因数后,每个质因数的底数和指数 阅读全文
posted @ 2021-07-13 17:36 JK~ 阅读(207) 评论(0) 推荐(0)
摘要:1、质数 ​ 在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数,或者交素数。 (1)质数的判定 试除法 时间复杂度O(sqrt(n)) #include <iostream> #include <algorithm> using namespace std; bool is_prime( 阅读全文
posted @ 2021-07-13 17:32 JK~ 阅读(246) 评论(0) 推荐(0)
摘要:求组合数2 给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cbamod(109+7) 的值。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一组 a 和 b。 输出格式 共 n 行,每行输出一个询问的解。 数据范围 1≤n≤10000 1≤b≤a≤105 输入样例: 3 3 1 阅读全文
posted @ 2021-07-12 15:11 JK~ 阅读(59) 评论(0) 推荐(0)
摘要:求组合数 III 卢克斯定理 给定 nn 组询问,每组询问给定三个整数 a,b,p,其中 p 是质数,请你输出 Cbamodp的值。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一组 a,b,p。 输出格式 共 n 行,每行输出一个询问的解。 数据范围 1≤n≤20 1≤b≤a≤10^` 阅读全文
posted @ 2021-07-12 15:09 JK~ 阅读(93) 评论(0) 推荐(0)
摘要:求组合数 1 给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cbamod(109+7) 的值。 输入格式 第一行包含整数 n。 接下来 n 行,每行包含一组 a 和 b。 输出格式 共 n 行,每行输出一个询问的解。 数据范围 1≤n≤10000 1≤b≤a≤2000 输入样例: 3 3 阅读全文
posted @ 2021-07-12 15:06 JK~ 阅读(40) 评论(0) 推荐(0)
摘要:求组合数 IV 输入 a,b,求 Cba 的值。 注意结果可能很大,需要使用高精度计算。 输入格式 共一行,包含两个整数 a 和 b。 输出格式 共一行,输出 Cba 的值。 数据范围 1≤b≤a≤5000 输入样例: 5 3 输出样例: 10 #include <iostream> #includ 阅读全文
posted @ 2021-07-12 11:24 JK~ 阅读(43) 评论(0) 推荐(0)
摘要:满足条件的01序列 卡特兰数 给定 n 个 0 和 n 个 1,它们将按照某种顺序排成长度为 2n 的序列,求它们能排列成的所有序列中,能够满足任意前缀序列中 0 的个数都不少于 1 的个数的序列有多少个。 输出的答案对 109+7 取模。 输入格式 共一行,包含整数 n。 输出格式 共一行,包含一 阅读全文
posted @ 2021-07-12 11:21 JK~ 阅读(41) 评论(0) 推荐(0)
摘要:高斯消元 高斯消元解线性方程组 输入一个包含 nn 个方程 nn 个未知数的线性方程组。 方程组中的系数为实数。 求解这个方程组。 下图为一个包含 mm 个方程 nn 个未知数的线性方程组示例: 输入格式 第一行包含整数 nn。 接下来 nn 行,每行包含 n+1n+1 个实数,表示一个方程的 nn 阅读全文
posted @ 2021-07-11 10:40 JK~ 阅读(50) 评论(0) 推荐(0)
摘要:###深度优先 排列数字 给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。 现在,请你按照字典序将所有的排列方法输出。 输入格式 共一行,包含一个整数 n。 输出格式 按字典序输出所有排列方案,每个方案占一行。 数据范围 1≤n≤7 输入样例: 3 输出样例: 1 2 3 1 3 阅读全文
posted @ 2021-06-01 17:29 JK~ 阅读(70) 评论(0) 推荐(0)
摘要:宽度优先: 模板 queue 初始 while queue 不空 t 队头 扩展t 迷宫问题 给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。 最初,有一个人位于左上角 (1,1) 处,已知该人每次可以向上、下、左、右任 阅读全文
posted @ 2021-06-01 17:18 JK~ 阅读(96) 评论(0) 推荐(0)
摘要:堆 小根堆:特点根结点是最小值,并且每棵子树的根结点是这棵子树的最小值。 注意存储的时候下标从1开始。 堆排序 输入一个长度为 n 的整数数列,从小到大输出前 m 小的数。 输入格式 第一行包含整数 n 和 m。 第二行包含 n 个整数,表示整数数列。 输出格式 共一行,包含 m 个整数,表示整数数 阅读全文
posted @ 2021-05-25 17:12 JK~ 阅读(65) 评论(0) 推荐(0)
摘要:并查集: 1、将两个集合合并 2、询问两个元素是否在一个集合当中 基本原理:每个集合用一棵树来表示。树根的编号就是这个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点 问题1:如何判断树根:if (p[x] == x) 问题2:如何求x的集合编号:while (p[x] != x) x = 阅读全文
posted @ 2021-05-23 10:51 JK~ 阅读(76) 评论(0) 推荐(0)
摘要:Trie:高校地存储和查找字符串 集合的数据结构 如果要存储下面的单词 abcdef abdef aced bcdf bcff cdaa bcdc 星号表示存储的单词末尾标记,例如如果要查找aced 由于d的位置有星号,表名有该单词,如果查找abcf则没该单词,如果查找abcd由于d的位置没有星号, 阅读全文
posted @ 2021-05-22 17:44 JK~ 阅读(50) 评论(0) 推荐(0)