线性基
摘要:线性基 线性基可以解决子集异或的问题. 用处: 快速查询一堆数可以异或出来的最大/最小值 快速查询一个数是否可以被一堆数异或出来 快速查询一堆数可以异或出来的第k大值 每一个序列都有线性基,性质: 原序列里面的任意一个数都可以由线性基里面的一些数异或得到. 线性基的元素能相互异或得到原集合的元素的所
阅读全文
posted @
2022-09-08 19:32
naiji
阅读(38)
推荐(0) 编辑
差分约束
摘要:差分约束 模板: P5960 【模板】差分约束算法 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 例题: Problem - 7176 (hdu.edu.cn) 有n个未知数,m个不等式. 将所有不等式化为:
px−py≤numi的形式. 连接边$y\right
阅读全文
posted @
2022-09-01 21:23
naiji
阅读(18)
推荐(0) 编辑
NTT(快速数论变换)
摘要:NTT(快速数论变换) 在取模的情况下,解决多项式乘法. n,m表示多项式的次数,从低到高读入 const int NR = 1 << 22, g = 3, gi = 332748118, mod = 998244353; //998244353的一个原根为3且998244353-1=2^23*11
阅读全文
posted @
2022-09-01 21:22
naiji
阅读(225)
推荐(0) 编辑
整数分块
摘要:整数分块 计算
∑n=dn=1⌊dn⌋,将n分成多个块, 使得每个块
[left<=i<=right],di=同一个数 struct node { int left,right,num; }; node a[1
阅读全文
posted @
2022-06-28 00:30
naiji
阅读(27)
推荐(0) 编辑
高斯消元
摘要:高斯消元 过程: 将系数矩阵
An,n和方程右值矩阵
Bn,1合并成增广矩阵. 将增广矩阵不断递归变成阶梯型矩阵. 最后逐步回溯得到每个未知数的值. int judge,n;//n个未知数 double mp[110][110],ans[110]; void dfs(int x)//
阅读全文
posted @
2022-06-28 00:16
naiji
阅读(29)
推荐(0) 编辑
BSGS算法
摘要:BSGS算法 给定一个质数 p,以及正整数 a,b,求满足同余方程
ax=b(modp)的最小非负整数x,无法满足时输出-1. 如果只是简单的枚举 x,那么要想得出结论,由于循环节最大为
p−1(欧拉定理),就需要枚举 0~p-1 去验证答案,当 p 的数量级达到 时,这种枚举显然不能满
阅读全文
posted @
2022-06-28 00:04
naiji
阅读(102)
推荐(0) 编辑
FWT(加速位运算卷积)
摘要:FWT FFT是加速加法卷积的一个方法.
Ci=∑j+k=iAj×Bk FWT是加速位运算卷积的方法.
Ci=∑j⨁k=iAj×Bk ⨁可以表示&,| ^ //n表示pa,pb两个数组有有2^n个
阅读全文
posted @
2022-06-28 00:02
naiji
阅读(189)
推荐(0) 编辑
FFT(加速加法卷积)
摘要:FFT 原理 (30条消息) 十分简明易懂的FFT(快速傅里叶变换)_路人黑的纸巾的博客-CSDN博客_fft a(x)是一个n次多项式,b(x)是一个m次多项式要求两个多项式a(x),b(x)的乘积h(x)
h(x)=a(x)∗b(x)两个函数的卷积,直接求复杂度O(n2), 两个函数卷积的
阅读全文
posted @
2022-06-28 00:01
naiji
阅读(515)
推荐(0) 编辑
集合运算
摘要:容斥原理 在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复,这种计数的方法称为容斥原理。 定义 如果
阅读全文
posted @
2022-05-04 23:02
naiji
阅读(90)
推荐(0) 编辑
生成字符串
摘要:生成字符串 SCOI2010] 生成字符串 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 一个生成字符串的任务,任务需要把 n个 1 和 m个 0 组成字符串,在组成的字符串中,在任意的前 k个字符中,1的个数不能少于 0 的个数。满足要求的字符串共有多少个. 一个经典问题: 一
阅读全文
posted @
2022-05-04 23:01
naiji
阅读(100)
推荐(0) 编辑
纸牌均分问题
摘要:均分纸牌问题 有两种情况:线形的,环形的。 1,线形的: 有n堆纸牌,第i堆有a[i]张纸牌,(保证
∑a[i]=n的倍数)。 每一堆纸牌可以左右传递,求使每队纸牌数量相同,所需要传递最少的纸牌数。 2环形的: P4016 负载平衡问题 - 洛谷 | 计算机科学教育新生态 (luogu.c
阅读全文
posted @
2022-01-20 23:33
naiji
阅读(43)
推荐(0) 编辑
扩展欧几里得
摘要:扩展欧几里得 问题描述 对于三个整数 a, b , c. 求解
ax+by=c 的( x , y )的整数解。 推导过程 首先我们要判断是否存在解,对于这个这个存在整数解的充分条件是 c 是 gcd(x,y) 的倍数。 朴素欧几里得 对于求解 gcd(x,y) 我们需要用 朴素欧几里得定理 。
阅读全文
posted @
2021-11-28 16:11
naiji
阅读(37)
推荐(0) 编辑
基础数论
摘要:基础数论
X!−1=1×1!+2×2!+3×3!+....+(x−1)×(x−1)! 互质 互质数为数学中的一种概念,即两个或多个整数的公因数只有1的非零自然数。公因数只有1的两个非零自然数,叫做互质数。 %模运算 (a + b) % p = a
阅读全文
posted @
2021-11-11 12:56
naiji
阅读(164)
推荐(0) 编辑
最长上升子序列
摘要:最长公共子序列 子串和子序列的区别: 子串是序列中连续的一串,子序列不一定连续。 思路: dp f[i][j];表示第一个字符串前i个字符和第二个字符串前j个字符的lcs if(a[i]==b[j]) f[i][j]=f[i-1][j-1]; else f[i][j]=max(f[i-1][j],f
阅读全文
posted @
2021-11-11 12:23
naiji
阅读(31)
推荐(0) 编辑
欧拉函数
摘要:欧拉函数 欧拉函数知识点总结及欧拉函数打表代码(数论) - 王陸 - 博客园 (cnblogs.com) 一。概念 在数论中,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。 例如φ(8)=4,因为1,3,5,7均和8互质。 欧拉函数用希腊字母φ表示,φ(N)表示N的欧拉函
阅读全文
posted @
2021-11-11 12:18
naiji
阅读(270)
推荐(0) 编辑
algorithm
摘要:algorithm 全排列 bool prev_permutation(iterator start,iterator end); bool next_permutation(iterator start,iterator end);//输出全排列 若下一个排序的字典序不是最大,返回true; 若是
阅读全文
posted @
2021-11-11 12:09
naiji
阅读(198)
推荐(0) 编辑
中缀表达式转化为后缀表达式
摘要:中缀表达式转化为后缀表达式 中缀表达式转化为后缀表达式: 使用栈,且满足如下规则: 1,遇到数字直接输出 2,遇到(进栈 3,遇到+-*/时,若栈为空进栈,若不为空,判断栈顶符号的优先级,若栈顶符号优先级>=当前符号优先级,则出栈 4,遇到),逐个出栈,直到(.后将)出栈 5,读到末尾,将栈中所有符
阅读全文
posted @
2021-11-10 22:43
naiji
阅读(63)
推荐(0) 编辑
卡特兰数
摘要:卡特兰数 卡特兰数是组合数学中一个常出现在各种计数问题中出现的数列。 卡特兰数前几项为 : C0=1,C1=1,C2=2,C3=5,C4=14,C5=42,C6=132,C7=429,C8=1430,C9=4862,C10=16796 输入一个整数n,计算h(n)。 令h(0)=1,h(1)=1,C
阅读全文
posted @
2021-11-10 22:41
naiji
阅读(238)
推荐(0) 编辑
逆元
摘要:逆元 逆元: 若a*x≡1(mod b) ,<a,b互质>,则称x为a的逆元, 应用: 当过程中需要计算a/b且对a/b取模时,有时b过大会超出范围,所以需要变除法为乘法。 一,费马小定理 局限性:p必须为质数 若p为质数,a为正整数,则a^(p-1)=1 (mod p); 即a^(p-1)=a*a
阅读全文
posted @
2021-11-10 22:38
naiji
阅读(90)
推荐(0) 编辑