![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
Anonytt
NWU本科在读,退役ACMer。
展开
-
矩阵快速幂模板
const ll mod = 1e9 + 7; const int N = _____;//输入矩阵大小N struct Mat{ ll m[N+1][N+1]; }; Mat a,e; Mat Mul(Mat x,Mat y){ Mat ans; for(int i=1;i<=N;++i){ for(int j=1;j<=N;++j){ ans.m[i][j]=0; for(int k=1;k<=N;原创 2021-01-30 21:50:19 · 83 阅读 · 0 评论 -
【数论】线性求逆元
ine[1]=1; for(int i=2;i<mod;i++){ int a=mod/i,b=mod%i; ine[i]=(ine[b]*(-a)%mod+mod)%mod; }原创 2020-06-06 20:23:52 · 143 阅读 · 0 评论 -
【数论】线性欧拉筛
初步上市 #include<iostream> using namespace std; int main() { cout<<"Hello world"<<endl; return 0; }原创 2019-05-18 20:12:08 · 285 阅读 · 0 评论 -
【数论】欧拉函数
ll eular(ll n) { ll ans = n; for(int i=2; i*i <= n; ++i) { if(n%i == 0) { ans = ans/i*(i-1); while(n%i == 0) n/=i; } ...原创 2020-01-30 12:00:06 · 177 阅读 · 0 评论 -
【数论】欧拉定理+费马小定理
欧拉定理 费马小定理 推论原创 2020-01-19 14:03:05 · 167 阅读 · 0 评论 -
【数论】矩阵快速幂推斐波那契公式
矩阵快速幂就是把快速幂的乘法变成矩阵乘法。 应用:求斐波那契数取模(大数) 斐波那契数列递推公式(这里取从第二项开始):f(1)=1,f(2)=2,f(n)=f(n-1)+f(n-2)(n>=3) 用矩阵表示为: 进一步,可以得出直接推导公式: ...原创 2020-01-16 13:03:44 · 205 阅读 · 0 评论 -
【数论】矩阵快速幂
模板如下: #include<bits/stdc++.h> using namespace std; #define ll long long const int maxn=110; const int mod=1e9+7; #define mod(x) ((x)%mod) int n; struct mat{ int m[maxn][maxn]; }unit; mat oper...原创 2020-01-15 21:44:11 · 151 阅读 · 0 评论 -
ACM取余公式
运算规则: 模运算与基本四则运算有些相似,但是除法例外。其规则如下: 1.(a + b) % p = (a % p + b % p) % p (1) 2.(a - b) % p = (a % p - b % p + p) % p (2) 3.(a * b) % p = (a % p * b % p) % p (3) 4. a ^ b % p = ((a % p)^b) % p (4) 结合律: (...原创 2019-10-22 09:10:28 · 589 阅读 · 0 评论 -
【埃氏筛选法+回文数判断】洛谷P1217
#include<bits/stdc++.h> using namespace std; bool book[100000001]; //用埃氏筛法生成素数表 void prime(int b) { //初始化,默认全部都是质数 memset(book, true, sizeof(book)); book[1]=false;//1不是质数 int n=...原创 2019-11-10 20:07:27 · 207 阅读 · 0 评论 -
【数论】费马小定理
介绍: 如果p是一个质数,而整数a不是p的倍数,则有a^(p-1)≡1(mod p) 即a^(p-1)%p=1%p(p是素数,a不是p的倍数)。 用法: 这样的话 a*a^(p-2)=1 则a^(p-2)是a的逆元,这样我们要求a的逆元的话,就用快速幂quick_power(a,p-2)即可快速就出来 ...原创 2019-10-22 14:30:00 · 242 阅读 · 0 评论 -
[数论]欧拉函数
#include<bits/stdc++.h> using namespace std; const int maxn=1e6+5; int prime[maxn],phi[maxn],cnt=0; bool vis[maxn]; void init(){ phi[1]=1; for(int i=2;i<maxn;i++){ if(!vis[i]){ prime[c...原创 2019-09-03 19:40:05 · 193 阅读 · 0 评论