![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数论
Pikachu_Yj
这个作者很懒,什么都没留下…
展开
-
逆元的线性求法
求 x在 mod p 下的逆元。 设 p/x= a, p%x= b, 则 a*x+ b = 0 (mod p ) 等式两边 乘以,得 =>> =>> 所以或者写成 例题:2020 CCPC Wannafly Winter Camp Day5 G 题 代码: #include<bits/stdc++.h> using...原创 2020-02-02 20:50:29 · 168 阅读 · 0 评论 -
hdu 6623 Minimal Power of Prime 素数筛、因式分解
题目给的n为1e18,无法预处理出1e18的素数,但是当大于1e4的因子,最多只有4个,所以可以先预处理出1e4以内的素数,然后对 n 分解质因数,若n == 1,那么取幂数最小的质因数,否则继续判断, n = ......... #include<bits/stdc++.h> using namespace std; typedef long long ll; c...原创 2019-08-04 14:00:35 · 134 阅读 · 0 评论 -
ArabellaCPC 2019 Meeting Bahosain 最大公约数
Meeting Bahosain 给你一个数组a和一个数组b,你可以让数组a中的数 +/- 数组b中的任一个数。目标使a数组中数相等。 可以将a[n]的值转化为a[n-1]再转化为a[n-2],……,最后使所有数都等于a[0],那么就是对于所有a[i] - a[i-1]都能由b表示出来,就输出YES 设对于所有i ,x=a[i] - a[i-1] , 那么x=k1*b1 + k2*b2 +k...原创 2019-07-14 11:49:01 · 378 阅读 · 0 评论 -
Tachibana Kanade Loves Game 牛客练习赛43 容斥原理
题目链接:Tachibana Kanade Loves Game 当k+(n- n中是2~m倍数的个数)<q 输出QAQ 所以只要找到n中是2~m倍数的个数题目就可以解决。 2<=m<=20 但是可以排除一些数,比如6,如果x是2的倍数,那么x肯定是6的倍数,所以找到n中是m中素数的倍数个数就行,m的取值为a[]={2,3,5,7,11,13,17,19}。 然后用容斥...原创 2019-04-08 21:11:54 · 104 阅读 · 0 评论 -
Tachibana Kanade Loves Probability 牛客练习赛43 快速幂+快速除
链接:https://ac.nowcoder.com/acm/contest/548/B 快速幂取模+快速除 #include<bits/stdc++.h> using namespace std; long long m,n,k1,k2; long long powerMod(int a,long long b){ long long ans=m; a=a%n; whil...原创 2019-04-06 16:01:42 · 121 阅读 · 0 评论 -
2019牛客暑期多校训练营(第五场) B generator 1 矩阵快速幂(模板)
传送门 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N = 1e6+100; ll mod; ll x0, x1, a, b; char s[N]; struct matrix{ ll m[2][2]; matrix operator * (const matrix &...原创 2019-08-04 14:21:27 · 87 阅读 · 0 评论 -
2019牛客暑期多校训练营(第五场) BSGS 算法
传送门 可以推出 当 a == 0 ; x0 等于 0 , 其余 xi 都等于 b , 当 a == 1 ;, 是个等差数列,v = x0 + n * b ; n = (v - x0) / b 当 a >= 2;是等比数列 ,所以 推出了的计算公式 , 就可以通过 BSGS算法求n, BSGS算法是解方程的一种算法, 首先通过费马小定理可以知道 x ...原创 2019-08-06 14:04:44 · 120 阅读 · 0 评论 -
hdu 6624 fraction 辗转相除法 求分数不等式最小解
传送门 分析题解写的很清楚了 辗转相除法可以求得满足不等式的x、y中,最小的x和y。 如果不等式中包含整数 m的话,那么 y = m,x = 1; 否则 将不等式三项都减 1 ,, 然后取反 直至不等式中包含整数,取分子等于 m ,分母 等于 1 因为 x , y 都是未知数, 所以需要回溯来求得 x , y #include<bits/stdc++.h> usi...原创 2019-08-07 20:10:54 · 202 阅读 · 0 评论