数论
czyhbo
这个作者很懒,什么都没留下…
展开
-
数轮(3)中国剩余定理及求解模线性方程组
TQL移步大神讲解POJ1006AC:#include <iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#define ll long long#define INF 0x3f3f3f3f#define EPS 1E-10using namespace std;void exgcd(int a,int b,int转载 2021-04-06 21:28:20 · 119 阅读 · 0 评论 -
数论(2)逆元
一、逆元理解逆元是什么?逆元就是扩大了概念的倒数。定义:如果 ax≡1(mod M),就称x为在模M下 a的 逆元!简单地说,如果一个数x满足 ax%M=1,那么x就称为在模M下 a的 逆元!为什么说是扩大了概念的倒数呢,可见比起以前的倒数,只加了一个条件,即在后边加了一个 “%M",也可以这样理解,我们以前的倒数,也有这个条件,不过M是1。二、逆元用处有时候结果会让取模,除法只能用逆元取,如下:(a/b)%M=(ainv[b])%M=(a%M)(inv[b]%M)%M三、方法原创 2021-04-06 21:21:04 · 5023 阅读 · 0 评论 -
数论基础(1)扩展欧几里得定理
一、引言扩欧在朴素欧几里得定理中扩展得到,主要用于解决什么问题?1.求两个数的最大公约数(朴素欧也可以解决这个问题)2.ax+by=gcd(a,b),求解这个线性不定方程的一组特解。(补充:贝祖定理:裴蜀定理(或贝祖定理)得名于法国数学家艾蒂安·裴蜀,说明了对任何整数a、b和它们的最大公约数d,关于未知数x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。它的一个重要推原创 2021-04-06 20:50:41 · 227 阅读 · 1 评论 -
codeforces C. Modified GCD
传送二分+数论数论:gcd(a,b)=公约数g1 *公约数g2 找两个数的所有公约数就可以转化成找最大公约数的约数#include<bits/stdc++.h> #define ll long long using namespace std;ll n;ll r, l, mid;ll gd;ll c[100000 + 100];ll a, b;ll gcd(ll x, ll y){ return x % y ? gcd(y, x % y) : y; }in原创 2020-07-27 12:24:00 · 151 阅读 · 0 评论 -
欧筛,打素数表
#include <iostream>#include<bits/stdc++.h>#define ll long longusing namespace std;const int maxn=1e6;const ll Maxn=2*1e6+100;int prime[maxn];map<ll,ll> check;ll cnt=0;void Init_Prime(){ for(int i=2;i<=Maxn;i++) {原创 2020-07-15 14:07:33 · 198 阅读 · 0 评论 -
codeforces 735D Taxes
传送门题意:有一个商人今年收入为n,但是他要交税,税收为n除本身外的最大因子。现在他想减少税收,把n分为独立的k份,k任意选,每份为ni,(ni≠1),问最少税收多少。解析:易得:把数拆成素数,可以获得最小和,因为素数的最大因数是1,同时还要使拆的的素数个数最少。哥德巴赫猜想:任意大于等于4的数都可以表示成两个素数之和。那么:1.n<=4 特判2.n>=4时: n为偶数 ans=23.n为奇数,看n是否是素数,是 ans=1,不是的话n=2+x4.x是素数,ans=2;5.x原创 2020-07-15 12:27:35 · 120 阅读 · 0 评论