数论
多行不译必自闭
人生如逆旅,我亦是行人
展开
-
分解素数 + 思维 -- E Groundhog Chasing Death
E Groundhog Chasing Death题意:题目大意:给出 a , b , c , d , x , y ,求思路:分解 x, y 的公共质因数,因为分解出来的质因数总事不变,我们只需要记录每个质因数的幂次和,在快速幂求贡献,把每个质因数的贡献相乘就是答案了。但这题有个坑,就是幂次和会爆long long ,要用费马小定理降幂。费马小定理:a^(p−1)≡1(mod p),把素因子的个数对“mod-1”取模即可。具体实现:看到这题的第一想法是两层循环嵌套枚举[a, b],[c, d]原创 2020-08-09 20:39:49 · 111 阅读 · 1 评论 -
线性求逆元
添加链接描述转载 2020-08-04 20:02:10 · 97 阅读 · 0 评论 -
整除化分块 -- B Mask Allocation
B Mask Allocation题意:正整数二元组 Legend Tuple (n, k) 是这样定义的:(1, k) 总是 Legend Tuple 。若 (n, k) 是 Legend Tuple, 那么 (n + k, k) 也是 。若 (n, k) 是 Legend Tuple, 那么 (nk, k) 也是。统计有多少个 Legend Tuple (n, k) 满足 1 ≤ n ≤ N, 1 ≤ k ≤ K, 其中 N 和 K 是不超过 1012 的整数。思路:code:#inc原创 2020-08-02 00:09:41 · 142 阅读 · 0 评论 -
素数筛
我们研究一下质数分布规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等;神仙筛法:我们研究一下质数分布规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等;证明:令x≥1,将大于等于5的自然数表示如下:······ 6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)+1 ······可以看到,不在6的倍数两侧,即6x两侧的数为6x+2,6x+3,6x+4,由于2(3x+1),3(2x+1),2(3x+2原创 2020-07-20 22:49:52 · 113 阅读 · 0 评论 -
Codeforces Round #319 (Div. 1) A. Vasya and Petya's Game
Codeforces Round #319 (Div. 1) A. Vasya and Petya’s GameA. Vasya and Petya’s Gametime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasya and Pe...原创 2020-03-25 21:48:32 · 168 阅读 · 0 评论 -
次小生成树 -- ACM Contest and Blackout UVA - 10600
In order to prepare the “The First National ACM School Contest” (in 20??) the major of the citydecided to provide all the schools with a reliable source of power. (The major is really afraid ofblack...原创 2020-03-25 11:13:17 · 144 阅读 · 0 评论 -
dp&卡特兰数&记忆化搜索-P1044 栈
P1044 栈递归思路本题的描述十分简单。n个数依次进栈,可随机出栈。求有几种可能。dfs可以解,但是递推仿佛好像如同看上去貌似更简单一些。解释一下原理:建立数组f。f[i]表示i个数的全部可能性。f[0] = 1, f[1] = 1; //当然只有一个设 x 为当前出栈序列的最后一个,则x有n种取值由于x是最后一个出栈的,所以可以将已经出栈的数分成两部分1、比x小2、比x大...原创 2019-10-17 22:44:25 · 187 阅读 · 0 评论 -
中国剩余定理
中国剩余定理(CRT) 的表述如下设正整数两两互素,则同余方程组有整数解。并且在模下的解是唯一的,解为其中,而为模的逆元。转载 2019-08-22 14:20:07 · 355 阅读 · 0 评论 -
2019暑期集训牛客多校-B.Irreducible Polynomial(玄学问题)
2019暑期集训牛客多校-B.Irreducible Polynomial思路题意大致为输入一个n,再输入n+1个数,表示一个一元n次多项式的系数,判断这个多项式是否可拆解。许老师说:当n>=3时,多项式一定可被拆解,n=1时一定不可以,就讨论一下n=2的情况。啊,玄学问题,不知道如何证明,搞数论时再去证。题解#include<iostream>using namesp...原创 2019-08-09 23:38:39 · 150 阅读 · 0 评论 -
整除化分块
整除化分块原题链接:2018ccpc吉林赛区(重现赛)找规律:#include<iostream>#include<cmath>using namespace std;int main(){ int t; double m; double n[1000]; cin>>t; // for(int i=1;i<=t;i++)// ...原创 2019-07-17 16:52:18 · 124 阅读 · 0 评论 -
乘法取模证明
((m%p)(n%p))%p=(nm)%p证明:m%p=(ip+c)%p=cn%p=(jp+d)%p=d所以 ((m%p)*(n%p) )%p=(c*d)%p而 (m*n)%p=( (ip+c)* (jp+d) )%p=( i*j*p^2+(i*d+j*c)*p+c*d )%p=(c*d)%p所以证得原创 2019-07-06 10:49:28 · 2042 阅读 · 0 评论 -
gcd求最大公约数
Greatest Common Divisor(GCD)欧几里得算法据说是最早的算法,用于计算最大公约数,也是数论的基础算法之一。这里给出使用欧几里得算法求最大公约数的递归和非递归的程序,同时给出穷举法求最大公约数的程序。从计算时间上看,递推法计算速度最快。/* * 计算两个数的最大公约数三种算法程序 */ #include <stdio.h> //#define ...转载 2019-07-06 10:31:10 · 841 阅读 · 0 评论 -
逆元
概念当求解公式:(a/b)%m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法:设c是b的逆元,则有b*c≡1(mod m);则(a/b)%m = (a/b)1%m = (a/b)bc%m = ac(mod m);即a/b的模等于a*b的逆元的模;逆元就是这样应用的;求法(1)费马小定理:假如a,p互质( 即gcd(a,p)=1 ),且p是质数,a任意,那 ...原创 2019-07-06 10:16:38 · 148 阅读 · 0 评论