数论
凌曦月
这个作者很懒,什么都没留下…
展开
-
P2158 [SDOI2008]仪仗队
文章目录思路题目传送门思路我们其实可以发现,我们如果要(x,y)(x,y)(x,y)这个点能被看见的话,我们就需要gcd(x,y)==1gcd(x,y)==1gcd(x,y)==1。我们就可以打一个暴力:#include <bits/stdc++.h>using namespace std;int n,ans;int main() { scanf("%d",&n); for(int i=0;i<n;i++) { for(int j=0;j<n;j++原创 2020-11-02 13:06:01 · 131 阅读 · 1 评论 -
小Z的矩阵
文章目录思路代码题目传送门思路我直接先打一个暴力:#include <bits/stdc++.h>using namespace std;int n,q,a[1005][1005],ans[500005],cnt;int ask() { int ans=0; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) ans=(ans+a[i][j]*a[j][i])%2;原创 2020-10-27 17:08:56 · 108 阅读 · 0 评论 -
青蛙的约会
文章目录思路代码题目传送门思路我们可以列出一个方程:x+km≡y+kn(mod l)x+km≡y+kn(mod\ l)x+km≡y+kn(mod l)我们转换一下:l∣x+km−y−knl\mid x+km-y-knl∣x+km−y−kn⇒lz=x+km−y−kn\Rightarrow lz=x+km-y-kn⇒lz=x+km−y−kn⇒−x+y=lz+km−kn\Rightarrow -x+y=lz+km-kn⇒−x+y=lz+km−kn⇒−x+y=lz+k(m−n)\原创 2020-10-24 09:41:24 · 234 阅读 · 0 评论 -
P2568 GCD
文章目录思路代码题目传送门思路我们暴力的话,还是能骗一点分的:但我们一定要追求极致,否则,学什么竞赛啊!(不是我说的!)我们直接枚举素数:∑p∈prime∑i=1n∑j=1n[gcd(i,j)=p]\sum_{p∈prime}^{}\sum_{i=1}^{n}\sum_{j=1}^{n}[gcd(i,j)=p]∑p∈prime∑i=1n∑j=1n[gcd(i,j)=p]变形得:∑p∈prime∑i=1⌊np⌋∑j=1⌊np⌋[gcd(i,j)=1]\sum_{p∈prime}^{}原创 2020-10-23 14:32:57 · 128 阅读 · 1 评论 -
扩展欧几里得算法
文章目录定义定义扩展欧几里得算法(Extended Euclidean algorithm)(Extended\ Euclidean\ algorithm)(Extended Euclidean algorithm),顾名思义就是欧几里得算法(辗转相除法)的扩展。已知整数a,ba,ba,b,扩展欧几里得算法可以在求a,ba,ba,b的最大公约数的同时,能找到整数x,yx,yx,y(其中一个很可能是负数),使它们满足贝祖等式:ax+by=gcd(a,b)ax+by原创 2020-10-20 13:34:21 · 166 阅读 · 0 评论 -
整除 && 模运算 && 同余
文章目录整除性质1.传递性:如果a∣ba\mid ba∣b且b∣cb\mid cb∣c,则a∣ca\mid ca∣c2.a∣ba|ba∣b且a∣ca|ca∣c等价于对于任意的整数x,yx,yx,y,有a∣(bx+cy)a|(bx+cy)a∣(bx+cy)3.设mmm不为000,则a∣ba|ba∣b等价于ma∣mbma|mbma∣mb4.设整数x,yx,yx,y满足下式:ax+by=1ax+by=1ax+by=1,且a∣n,b∣na|n,b|na∣n,b∣n,那么(ab)∣n(ab)|n(ab)∣n5.若b=原创 2020-10-18 15:56:03 · 692 阅读 · 0 评论 -
排列组合与盒子放球问题
文章目录前置知识:排列组合定义组合公式1.证明Cnm=Cnn−mC_n^m=C_n^{n-m}Cnm=Cnn−m2.证明CnmCmk=CnkCn−km−kC_n^mC_m^k=C_n^kC_{n-k}^{m-k}CnmCmk=CnkCn−km−k3.证明∑i=0nCni=2n\sum_{i=0}^nC_n^i=2^n∑i=0nCni=2n4.证明Cn+mk=∑i=0kCni×Cmk−iC_{n+m}^k=\sum_{i=0}^kC_n^i\times C_{m}^{k-i}Cn+mk=∑i原创 2020-10-17 08:05:46 · 2741 阅读 · 0 评论 -
约数之和
文章目录约数个数定理证明方法约数定理思路代码题目传送门约数个数定理我们对于一个大于111的整数nnn,nnn可以分解为 ∏i=1kpiai=p1a1× p2a2× p3a3...pkak\prod_{i=1}^kp_i^{ai}=p_1^{a_1}\times\ p_2^{a_2}\times\ p_3^{a_3}...p_k^{a_k}∏i=1kpiai=p1a1× p2a2× p3a3...pkak。则nnn的正约数个数就是f(n)=∏原创 2020-10-15 21:29:36 · 136 阅读 · 0 评论 -
最大公约数与最小公倍数
文章目录题目描述思路证明nnn和n−1n-1n−1互质题目描述⼩YYY同学在学习数论之后灵机⼀动想出⼀个问题:请你找出两个数a,ba,ba,b,满⾜1≤a,b≤n1≤a,b≤n1≤a,b≤n且lcm(a,b)−gcd(a,b)lcm(a,b)−gcd(a,b)lcm(a,b)−gcd(a,b)尽量⼤。输出最⼤的lcm(a,b)−gcd(a,b)lcm(a,b)− gcd(a,b)lcm(a,b)−gcd(a,b)。其中gcd(a,b)gcd(a,b)gcd(a,b)表⽰aaa和bbb的的最⼤公约数,l原创 2020-09-26 07:33:01 · 105 阅读 · 0 评论 -
最大公约数和最小公倍数
文章目录1.最大公约数欧几里得算法证明gcd(a,b)=gcd(b,bmod a)gcd(a,b)=gcd(b,b\mod\ a)gcd(a,b)=gcd(b,bmod a)1.最大公约数最大公约数的英文是Greatest Common Divisor,常缩写为 gcd。我们首先先了解一下约数的概念:如果存在一个整数kkk,使得a=kda=kda=kd ,则ddd称aaa整除,记做d∣ad|ad∣a,称aaa是ddd的倍数,如果d>0d>0d>0,称ddd是原创 2020-08-13 19:10:01 · 684 阅读 · 0 评论 -
素数与素数筛
文章目录素数的定义素数的判断从2到x\sqrt xx的证明:素数筛法:1.Eratosthenes 筛法线性筛法素数的定义啊,耳熟能详。素数又称质数,一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。啊!1不是素数啊素数的判断啊,也耳熟能详了,暴力枚举一下除1和本身的自然数是否会被整除。bool is_prime(int x) { for(int i=2;i<x;i++) if(x%i==0) return原创 2020-08-10 17:37:09 · 118 阅读 · 0 评论