随笔分类 - Number theory
摘要:1. 康托展开 X = A[0] * (n-1)! + A[1] * (n-2)! + … + A[n-1] * 0! A[i] 指的是位于位置i后面的数小于A[i]值的个数,后面乘的就是后面还有多少个数的阶乘 tips:这个算出来的数康拖展开值,是在所有排列次序 - 1的值,因此X+1即为在全排列
        阅读全文
            
摘要:1. 思路:对于不超过n的每个非负整数p(>=2),删去除1*p外所有倍数,处理完所有数后还剩下的就是素数。 2. 复杂度:内层循环次数是 ⌊n/i⌋ - 1< n/i,O(nlogn) 3. tips:①素数定理 Π(x) ~ x/lnx, 即不超过x的素数个数与x/lnx比较接近
        阅读全文
            
摘要:1. 一条数学公式:如果有 a%b=c, 则有 (a+kb)%b=c(k 为非零整数) 2. 用途:求解一次线性同余方程组,需要将模数转化为素数来求解的题目 3. 核心:求 (N/mi)∗yi≡1(mod mi) 中的yi --》 扩展欧几里得 --》 看成 yi(N/m1)+q⋅m1=1 (若mi
        阅读全文
            
摘要:总结自🍑 1. 引入:求 (a/b) %p 》 “除以一个数再取模等同于乘以这个数的逆元再取模” // 这里b很大,暴力╮(╯-╰)╭ 2. 求法:设 inv[b]是b的逆元,那么(a/b)%p = (a*inv[b])%p // 叫法是 一个数b在模p的条件下的逆元是多少 一个数的逆元可能有若干
        阅读全文
            
摘要:总结自这两篇:👨✈️👩💼 mark一下这篇:👨🚀 一、扩展欧几里得 1. 辗转相除法(欧几里得算法)的证明: 2. Ex_gcd用途:求关于 ax + by =gcd(a,b) 的所有整数解 思路:令g=gcd(a,b) ,若我们已知该方程一个特解x0,y0,则我们可以用某种方式求出
        阅读全文
            
摘要:一、一维前缀和 前提:给一个长度为n的数列,m次询问,问[L,R]区间内数列各项和 所以,前缀和就是前面i个数的总和,所求区间和即为a[R]-a[L-1] 二、一维差分 前提:给一个长度为n的数列,对[L,R]区间加上或减去某个值,最后问[L,R]区间内数列各项和 三、二维前缀和 前提:给定一个n*
        阅读全文
            
摘要:一、快速幂 整数:求a^n,把n化为2*(k1+k2+..+km); 矩阵:注意矩阵乘法。 复杂度:O(logn) tip:取了模(根据题目要求) 1 #include<bits/stdc++.h> 2 #define mem(a) memset(a,0,sizeof(a)) 3 #define l
        阅读全文
            
                    
                
浙公网安备 33010602011771号