
数论
#
夕林山寸
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二次剩余、威尔逊定理 简单记下结论
https://blog.youkuaiyun.com/stevensonson/article/details/85845334https://www.cnblogs.com/bztMinamoto/p/10664973.html直接记结论。(管你看没看懂,记就完事了)什么是二次剩余:如果存在一个整数x,使得,那么称n在模p意义是二次剩余。怎么判断一个数n在模p意义下是不是二次剩余?勒让德符号:一些定理p的二次剩余和二次非剩余的个数均为(不考虑0)的情况下怎么求..原创 2020-07-22 20:24:31 · 370 阅读 · 0 评论 -
利用埃筛 求1-n中的莫比乌斯函数值
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int M = 1e5+7;int miu[M],vs[M];void pre(){ int n=1e5; for(int i=1;i<=n;i++)miu[i]=1,vs[i]=0; for(int i=2;i<...原创 2020-04-17 12:13:57 · 289 阅读 · 0 评论 -
算法竞赛——进阶指南——acwing213. 古代猪文 lucas定理+欧拉定理+中国剩余定理,巧妙的性质!
一道很考验数论基本功的题目,知识杂糅。首先指数取模一般用欧拉定理降维(利用指数循环节)而这必须满足q与mod互质,由于mod是质数,当q==mod时,结果为0,否则q与mod互质则可用欧拉定理的推论得到:然后只需处理质数部分即可。大数的组合数用lucas定理求。但由于求多次,且模数太大,阶乘的复杂度过高,不可直接求。我们分解999911659发现:其有4个质因子...原创 2020-04-14 19:37:59 · 309 阅读 · 1 评论 -
Codeforces Round #630 (Div. 2) E - Height All the Same
我们可以让一个块+2,或让两个相邻的块都+1。显然,如果初始状态与目标状态的奇偶性相同一定可行。所以当n*m为奇数,初态奇偶状态是什么都可,(因为末态有奇数有偶数),这个直接快速幂即可当n*m是偶数时,初始状态必须时偶数,因为末态只有偶数然后就求出n*m个数,每个数取值L-R,和是偶数的方案:第一种方法:线性dp+矩阵快速幂加速dp[i][j]表示选了i个数,和为:偶数/奇...原创 2020-04-01 13:29:09 · 216 阅读 · 0 评论 -
Libre oj #161. 乘法逆元 2 \ P5431 【模板】乘法逆元2
核心是任意n个数取模,可以用模数的性质,在O(N+logp)的复杂度求出libre oj//#include <bits/stdc++.h>#include<iostream>#include<cmath>#include<cstdio>#include<map>#include<set>#include...原创 2020-03-25 11:54:29 · 502 阅读 · 0 评论 -
算法竞赛——进阶指南——POJ1830 异或方程组求解—— (解答为何这道题 的 异或方程组组可以高斯消元)
搞了半天才明白为什么异或方程组求解可以直接套高斯消元。。看了往上bolg几乎都没有提这点。。(我感觉这地方才是最难的)其实异或方程组求解直接套高斯消元是有条件的:未知数必须是2的次幂(0,1,2,4,这种)只有这样才满足 a*x ^ b*x == (a ^ b ) * x ;这样两个方程就可以异或消去未知数了。...原创 2020-03-17 18:42:52 · 478 阅读 · 1 评论 -
算法竞赛——进阶指南——acwing207. 球形空间产生器 高斯消元应用
n维球体的通式:(x1-a1)^2 +(x2-a2)^2 + …… +(xn-an)^2 =R ^ 2球心坐标就是(a1,a2,……,an)给出n+1个坐标,均带入,发现不好解,因为是二次方程,而且R^2是未知数由于所有方程右边都是R^2 我们可以两两联立方程,消去一次 变成多元一次方程 用高斯消元搞搞就行。例如:(x11-a1)^2 +(x12-a2)^2 + ...原创 2020-03-13 17:46:13 · 192 阅读 · 0 评论 -
P3389 【模板】高斯消元法 常规写法+约旦消元
把方程化简成 简化梯形矩阵 然后回带即可#include<bits/stdc++.h>using namespace std;const int M=100+7;double mp[M][M];double ans[M];double eps=1e-7;int main(){ int n; scanf("%d",&n); for(int i=1;i...原创 2020-03-11 12:27:26 · 189 阅读 · 0 评论 -
算法竞赛——进阶指南——acwing205. 斐波那契 矩阵快速幂
利用了矩阵结合律,先算出构造递推矩阵自乘的结果,再与初始矩阵相乘。#include <bits/stdc++.h>using namespace std;typedef long long ll;#define ls (o<<1)#define rs (o<<1|1)#define pb push_back//#define a(i,j) a[...原创 2020-03-06 10:51:03 · 1565 阅读 · 0 评论 -
P2485 [SDOI2011]计算器 取模三大基础模板
手敲了这题,差不多入门同余了#include <bits/stdc++.h>using namespace std;typedef long long ll;#define ls (o<<1)#define rs (o<<1|1)#define pb push_back//#define a(i,j) a[(i)*(m+2)+(j)] ...原创 2020-03-02 20:54:43 · 385 阅读 · 0 评论 -
bsgs 算法 求高次同余 方程 a^x %p = b 的形式
利用指数循环节,枚举i,达到根号n的复杂度ll qpow(int a,int b,int p){ ll ans=1; while(b) { if(b&1)ans=ans*a%p; a=a*a%p; b/=2; } return ans;}int bsgs(int a,int b,int p)// a^x \equiv b (mod p){ map&l...原创 2020-03-02 19:13:29 · 301 阅读 · 0 评论 -
算法竞赛——进阶指南——acwing203. 同余方程 拓欧模板题
拓欧模板题。利用裴属定理解决二元一次方程。ax+by=m 有解 充要条件是 m|gcd(a,b);#include <bits/stdc++.h>using namespace std;typedef long long ll;#define ls (o<<1)#define rs (o<<1|1)#define pb p...原创 2020-02-25 16:58:10 · 271 阅读 · 0 评论 -
POJ 1845 逆元应用
题目很简单,质因数分解,组合数搞搞,转化成等比数列。然后逆元。但注意:如果分母的逆元不存在时,我们就不能用等比求和公式来做。如果p-1 不存在逆元,即 p -1 是9901的倍数,那么1+p+p^2+p^3+……+p^c 1+1+1^2+1^3+……+1^c c+1 (mod 9901)然后用c+1代替这一项的求和即可。...原创 2020-02-24 17:54:57 · 158 阅读 · 0 评论 -
算法竞赛——进阶指南——POJ3696 acwing202. 最幸运的数字 欧拉函数 指数循环节
https://www.bbsmax.com/A/x9J2xWyKd6/思路参考蓝书和这篇博客。这里的qmul的意思是快速乘法,为了防止快速幂中两个1e10相乘爆LL。然后我把sqrt(2e9)内质数预处理出来,加快速度#include <bits/stdc++.h>using namespace std;typedef long long ll;#define...原创 2020-02-21 19:46:24 · 227 阅读 · 0 评论 -
算法竞赛——进阶指南——POJ3090 acwing201. 可见的点 欧拉筛写法
主要利用了欧拉函数的性质,https://blog.youkuaiyun.com/bjfu170203101/article/details/104404928我这篇博客里的性质 3) 和 4)。#include <bits/stdc++.h>using namespace std;typedef long long ll;#define ls (o<<1...原创 2020-02-20 16:50:42 · 259 阅读 · 0 评论 -
算法竞赛——进阶指南——BZ0J1053 反素数
这是个思维想结论题。根据题目给的条件 推出一些性质,使得问题简化。1首先根据反素数定义,我们可以得到,反素数一定是1-N中约数最多的数(如果由多个约数相同且最多的数,取最小的那个)。证明:假设这个数是m。我们任取x<m 肯定有g(x)<g(m)任取x>=m ,都有g(m)>=g(x)显然 x>=m时只有x==m符合反素数定义。则x一定是1...原创 2020-02-17 19:25:43 · 191 阅读 · 0 评论 -
BZOJ 1257: [CQOI2007]余数之和
整数分块,证明想明白了。。。n/(n/i); 相当于 几何意义:有一个长度为n的线段,左端点1,右端点n。中间放y段小线段,每个小段段的长度都是x。一个分块的含义是:当前小段的长度是l,每小段长度要变成多少才能使得段数刚好不发生改变。即:小段长度在l-r区间范围内,中间都能恰好放y 个小线段。(尽量放满)取min的操作是防止r超出边界#incl...原创 2020-02-04 13:54:54 · 133 阅读 · 0 评论 -
CH3101 阶乘分解
阶乘分解。。每个数分解质因数 再合并 复杂度N根号N。会T。我第一开始做法是:求出所有1-n所有质数。遍历1-n,一个一个分解。。。。复杂度n^2....其实我们求出1-n中所有质数后。对每个质数算出它的ci即可。怎么算?对于一个质数p,求它分解后的的次幂p,p*2,p*3,……p*b //p*b<=n.这么些个数都会有p这个因子。总共下取...原创 2019-09-12 22:27:13 · 241 阅读 · 0 评论 -
Prime Distance POJ - 2689 区间筛素数
区间筛素数。类似埃筛的思想。直接求1-R所有质数,打不下。由于一个合数N,一定有一个不超过根号N的质因子。所以我们只要用筛法求出 1 --- 根号R 的质数。然后类比埃筛,标记L-R之间合数。//注意1不是质数。然后把质数取出,求相邻质数差最大最小即可。//KX//#include <bits/stdc++.h>#include<cstdio&...原创 2019-09-12 21:55:27 · 198 阅读 · 0 评论