
数论
数论练习
m0_51303687
取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣。
展开
-
做题记录22.3.6洛谷P1134
数学问题。原创 2022-03-06 16:07:05 · 165 阅读 · 0 评论 -
数学问题模板(二)
1.快速幂 long qpow(long x,int n,int mod) { if(n==0) return 1; long res=qpow((x*x)%mod,n/2,mod); return (x%2==0)?res:(res*x)%mod; } 2.快速乘 long qmul(long a,long b,int mod) { if(b==0) return 0; if(b==1) return a; long res=qpow((x+x)%mod,n/2,mod); return原创 2021-09-08 17:13:03 · 93 阅读 · 0 评论 -
做题记录2021.8.21 洛谷P1082同余方程
这题可以转换一下:ax≡1 (mod b)可以转化为ax+by=1,y是新引入的参量。于是问题就转换为求不定方程ax+by=1当x为最小时正整数时的解(显然,此时y为负数)。我们可以用exgcd完成。 这里还有一个问题:求出的仅仅是一组解,并不能保证此时x是最小正整数,可能比正解的x大,也可能是负数。 通过观察得知:求出一组解x,y后,x+kb,y-ka(k为正整数)都是这个方程的解。因此可以让x mod b求出的就是最小整数解。当然,如果x为负数,要先调整为正数。 代码: #include <.原创 2021-08-21 09:57:28 · 97 阅读 · 0 评论 -
数学问题模板(一)
一、最大公约数与最小公倍数 long gcd(long a,long b) {return (a%b==0)?b:gcd(b,a%b);} long lcm(long a,long b) {return a*b/gcd(a,b);} 二、素数判断 bool is_prime(int x) { if(x<2) return 0; //注意特判 int maxn=(int)sqrt(x); //注意:为防止计算过程中数据溢出,最好先输算出sqrt(x) for(int i=2; i<=原创 2021-08-19 15:23:02 · 102 阅读 · 0 评论