![](https://i-blog.csdnimg.cn/direct/05f62c1c21b94f1681213daff11621f4.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数论
文章平均质量分 68
数论分类
wh233z
努力学习in……
展开
-
exgcd的模板以及应用
exgcd的变形,由题意我们可以得出x+km≡y+kn(mod l),那么x+km与y+kn跟l成倍数关系,x+km−(y+kn)=lz,z∈Z,变换一下可以得出x-y-k(n-m)= lz,我们令a=n-m,b=l,c=x-y,那么ka+bz=c,形如ax+by=c,令gcd(a,b)=d,通过exgcd我们可以得出ax1+by1=d,方程两边同时乘以c/d,可以得出a。先套用exgcd模板求出最小的特解x,然后用裴蜀定理判断无解的情况,剩下的就是二元一次方程的解法(纯数学,本蒟蒻不会,可以参考。原创 2024-07-14 10:46:47 · 763 阅读 · 0 评论 -
乘法逆元的模板以及应用
首先我们可以开一个最小堆模拟集合,因为每次取出的数必须是集合里面最小的数,否则就不满足题意,堆中的元素总数为分母,当前队头的最小元素的数量即为分子,该数量可以用map来记录,计算不同分数的积并进行取模,最后将分母进行快速幂的逆元,然后乘上分子在取模一次即可。求最后取出来的数组满足递增(小于等于后一项)的概率,然后对这个概率进行取模处理。所以我们可以用快速幂来算出x的值,这个数就是 a 的逆元了。非-1:将这个数存入集合里面。-1:从集合里面取出一个数。原创 2024-07-15 14:52:16 · 856 阅读 · 0 评论 -
如何求最大公约数以及最小公倍数
最小公倍数 = 两数之积除以最大公约数,在这里使用辗转相除的方法求解最大公约数,即a与b的最大公约数可以转化为a、b之间的余数为两者之间最小的数之间的公约数。所以对于输入的两个数进行连续求余,直到余数为0,求余的分母即为结果。题意描述:n个分数求和,若结果只为整数则只输出整数,否则输出的形式为一个整数k,和一个分数形式,分数必须是最简形式且分子小于分母,若整数为0则不输出整数形式。分析:首先我们需要将分子和分母的总和分别存入两个变量,模拟数学中分数相加的形式,每一次相加后都要对其进行约分,最后按题意输出。原创 2024-04-14 13:58:16 · 564 阅读 · 1 评论 -
模拟竖式计算除法
正确思路:我们可以模拟竖式相除,当被除数大于除数时,就相除,然后对被除数和除数取模,若取模后不为0(即还没找到s),那么就将他乘以10在加上1(加上1是因为光棍的所有位数都为1),对于位数另开一个计数器统计位数即可。题意描述:给定一个整数x,求出这个整数乘以最小的整数s是一个光棍(光棍就是所有位数都由1组成),以及输出光棍的位数。对于这份代码我也没报多少希望,果然当光棍的值超出long long范围时,则找不到答案,所以这种方法是错的。错误思路:直接暴力穷举关棍,当光棍可以整除x时,就找到这个值。原创 2024-04-16 20:12:06 · 584 阅读 · 0 评论