
从0开始的数论
好好反思
ddgo
给我高高飞起来啊!(ACM退役,转JAVA后端了)
展开
-
质数判定 及筛选 及分解质因数 (模板) 及例题
质数判定试除法:若正整数N是合数,则存在一个能整除N的数T,且T <= sqrt(N)。代码:判断一个数是不是质数。#define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);#include<iostream>#define int long longusing namespace std;const int N = 1e3+10;bool is_prime(int x){ if(x < 2) re原创 2020-12-24 23:53:18 · 234 阅读 · 0 评论 -
扩展欧几里德算法证明及例题
ax + by = gcd(a,b) = gcd(b,a%b) = bx1x_1x1 + (a - abb)y1=ay1+b(x1−aby1\frac{a}{b}b)y_1 = ay_1 + b(x_1 - \frac{a}{b}y_1bab)y1=ay1+b(x1−bay1)考虑gcd的调用顺序 有 x = y1y_1y1, y = (x1x_1x1 - aby1\frac{a}{b}y_1bay1)当b == 0 时,则有 x = 1,y = 0;故有代码为int exgc原创 2020-12-23 23:17:36 · 437 阅读 · 0 评论 -
最大的数(洛谷p1198)(线段树/单调栈+二分/单调栈+并查集)
题目地址线段树:直接就是标准模板,先直接建立一个长度为2e5的线段树,然后单点修改,区间查值。#include<iostream>#include<algorithm>#include<cstring>using namespace std;const int N = 2e5 + 10;#define l(x) t[x].l#define r(x) t[x].r#define ans(x) t[x].ansstruct SegmenTree{原创 2021-03-04 16:03:50 · 223 阅读 · 1 评论 -
Colossal Fibonacci Numbers! (模定理) (uva 11582)
寻找循环节,对于斐波那契的每一个数,都不相同,而在mod n之后,最坏第n次出现与之前的相同。而当我们找到第二次0,1出现的位置时,就得到了循环节。最坏n2n^2n2次出现。最后输出aba^bab%m的位置对应的值。当n等于1时,输出0,此时f[]为全0;注意爆long long.#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);#include<bits/stdc++.h>#define int long原创 2020-12-27 00:06:16 · 163 阅读 · 0 评论 -
青蛙的约会 (扩展欧几里得) (洛P1516)
题目地址题意描述是在一个环下,青蛙一直跳,最后跳到同一个地方最小天数,每天都必须跳。下式中t和p为常数故可得x+tm=y+tn(modl)x + tm = y + tn \pmod lx+tm=y+tn(modl)-> t(m−n)=(y−x)(modl)t(m-n) = (y - x) \pmod lt(m−n)=(y−x)(modl)->令a=m−n,c=y−x令a = m-n ,c = y - x令a=m−n,c=y−x->at=c(modl)at = c \pmod l原创 2020-12-24 21:15:29 · 324 阅读 · 0 评论 -
有理数取余 (扩展欧几里得) (洛P2613)
题目地址将题目公式转换一下。已知 p=19260817p = 19260817p=19260817 c=abc = \frac{a}{b}c=ba求 c mod p==x mod pc \bmod p == x \bmod pcmodp==xmodp-> ab mod p==x mod p\frac{a}{b} \bmod p == x \bmod pbamodp==xmodp-> bx=a(modp)bx = a\pmod pbx=a(modp)此题 a,b 过大,原创 2020-12-24 12:47:13 · 349 阅读 · 0 评论 -
同余方程 (扩展欧几里得) (洛P1082)
题目地址题目化简 ax−yb=1ax -yb = 1ax−yb=1 要求最小x.典型扩展欧几里得方程式。显然 1∣gcd(a,b)1 | gcd(a,b)1∣gcd(a,b) 故方程始终有解。用模板求出 x.现在考虑,如何使x最小. 假设当前求出了一个xxx。a∗x−1=bya*x - 1 = bya∗x−1=by -> x=by−1ax = \frac{by-1}{a}x=aby−1a,b互质,为满足x为整数,y只能改变a的倍数。化简得 x=b(y−ka)−1ax = \fr原创 2020-12-23 23:15:31 · 184 阅读 · 0 评论