![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
wtcl
这个作者很懒,什么都没留下…
展开
-
O(N) 求 1~N 逆元 模板及证明
https://blog.csdn.net/liyizhixl/article/details/78426576原创 2020-08-06 23:43:35 · 125 阅读 · 0 评论 -
Little Rabbit‘s Equation(模拟)
答案一定要比数字的每一位大#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define ll long longchar s[100];int main(){ while(scanf("%s",s+1)!=EOF) { int flag=0; int len=strlen(s+1); int m原创 2020-08-06 23:10:48 · 128 阅读 · 0 评论 -
牛客多校七 Dividing(数论分块)
数论分块:求n/1+n/2+n/3+…+n/k的和#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define ll long longll mod=1e9+7;int main(){ ll n,k; scanf("%lld%lld",&n,&k); ll a原创 2020-08-02 01:04:36 · 126 阅读 · 0 评论 -
Fibonacci Sum HDU - 6755(数论+优化)
讲解:https://blog.csdn.net/acdreamers/article/details/23039571(题目基本一样)优化:1.欧拉降幂2. num1=ksm(a*ksm(b,mod-2)%mod,c);num2=ksm(num1,n+1);等比数列公比:t[r]=(a^r * b^(k-r) )^c = (a^(r-1) * b^(k-r+1)) ^ c * (a/b)^c= (a^(r-1) * b^(k-r+1) ) ^c * num1;等比数列前n项和原创 2020-07-22 16:09:15 · 120 阅读 · 0 评论 -
乘法逆元
a/b=a*x(modp) 求b的模p逆元x4**条件:1.b|a2.b,p互质(当p是质数时,b不是p的倍数)算法:1.如果p为质数 b^p-2是b的乘法逆元2.如果只保证b,p互质,求解同余方程原创 2020-07-22 01:42:45 · 51 阅读 · 0 评论 -
牛客多校三 Fraction Construction Problem(构造+数论)
构造题型:分类构造情况一:a和b不互质:g=gcd(a,b) 答案为a/g+1,b/g,1,b/g情况二:a和b互质,b的相异质因数个数大于11.一定能找到d,f,满足d*f=b且d,f互质。2.原创 2020-07-21 10:28:18 · 98 阅读 · 0 评论 -
Basic Gcd Problem(数论)
思路:1.理解题意后后不难发现要求的其实是c^f[n],f[n]就是求解f[n]所用的递归层数。例:n=20;n=2^2 + 5^1;[20]=f[4]+1;//每次都除一个质因数f[4]=f[2]+1;f[2]=f[1]+1;2.其实就是求n的质因子总数#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#原创 2020-07-20 21:53:11 · 70 阅读 · 0 评论 -
扩展欧几里得算法
欧几里得算法(辗转相除法):d|a d|b -> d|(ax+by)(a,b)=(b,a%b)a%b=a-(a/b)b=a-cb(a,b)=(b,a-c*b);裴蜀定理:对于任意的任意的a,b, 一定存在非零整数x,y,使得 ax+by=gcd(a,b)gcd(a,b)是a和b能凑出来的最小的正整数。能由a和b凑出来的数一定是gcd(a,b)的倍数。a是gcd(a,b)的倍数,b是gcd(a,b)的倍数, ax+by一定是gcd(a,b)的倍数扩展欧几里得算法#inc原创 2020-07-19 13:26:40 · 91 阅读 · 0 评论 -
Link/Cut Tree CodeForces - 614A(数论)
1.虽然l,r都在long long范围内但ans还是有可能爆ll(因为你最后只有>r时才会停止)#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;#define ll long longint main(){ ll l,r,k,ans; scanf("%lld%lld%lld",&l,&r原创 2020-07-07 20:20:55 · 84 阅读 · 0 评论 -
Pagodas HDU - 5512(gcd)
1.假设没有范围限制,只是给两个点,那么接来下能够扩展的点有什么什么特点? 其实很显然了, 所能生产点的特点就是xa+yb2.假设num=xa+yb,只有gcd(a,b)能整除num,(不知道的赶快补)那么这个num才能被表示。3.那么有多少个只有的num? total=n/gcd(a,b)(向下取整)4.如果数量是偶数,先手输反之先手赢…#include<cstdio>#include<cstring>#include<iostream>#include&原创 2020-07-04 12:49:05 · 86 阅读 · 0 评论 -
Codeforces Round #632 (Div. 2) F - Kate and imperfection(数论)
讲解:https://blog.csdn.net/qq_43627087/article/details/105402480?fps=1&locationNum=2这道题本质是求1-n每个数的最大因子。#include<cstdio>#include<cstring>#include<iostream>#include<algorithm...原创 2020-04-10 21:40:16 · 148 阅读 · 0 评论 -
线性筛
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;const int N=1000010;int primes[N],cnt;bool st[N];void get_primes(int n){ for...原创 2020-04-10 20:47:17 · 61 阅读 · 0 评论 -
欧拉筛
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int N=1000010;int primes[N],cnt;bool st[N];void get_primes(int n){ for...原创 2020-04-10 20:42:22 · 86 阅读 · 0 评论 -
数字转换
数论常用技巧:求倍数比求约数简单。```cpp#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int N=1e5+10;int d1[N],d2[N],st[N];int h[N],e[N...原创 2020-03-26 19:37:20 · 106 阅读 · 0 评论 -
Trailing Zeroes (III) LightOJ - 1138
题意:给你一个n问你多少的阶乘末尾0位n个。根据算术基本定理,可以得到x = 2 ^ a *3^b*5^c....只有当2 和 5 出现的时候才能出想0,因为2 的个数肯定比5多,所以对于每个5,都能使结果多一个0。于是只要求到n! 中有多少个5 个数,但是对于n! 来讲,无法直接求到它的值,需要通过一些方法来解决;用到了一个数论知识:若p是质数,p<=n,则n!是p的倍数,设p^x...原创 2019-09-18 14:40:31 · 93 阅读 · 0 评论 -
Goldbach`s Conjecture LightOJ - 1259 欧拉筛
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>bool p[10000010];int prime[1000010];//1e7会溢出int cnt=0;#define ll long longvoid isprime(){ p[0]=p...原创 2019-09-14 12:52:57 · 81 阅读 · 0 评论 -
The Super Powers UVA - 11752n
数论 The Super Powers UVA - 11752@TOC//The Super Powers UVA - 11752#include#include#include#includeusing namespace std;#define ll unsigned long longconst int maxn=64+5;ll inf=(1<<64)-1;b...原创 2019-09-01 15:47:17 · 97 阅读 · 0 评论