初等数论
文章平均质量分 54
明月千里赴迢遥
这个作者很懒,什么都没留下…
展开
-
中国剩余定理例题 POJ1006
中国剩余定理模板的返回值是最小值,最小值加上公倍数就是通解,求最小的大于day的通解即为所求中国剩余定理#include<cstdio>//http://poj.org/problem?id=1006#include<iostream>using namespace std;typedef long long ll;ll exgcd(ll a,ll b,ll &x,ll &y) { //扩展欧几里得算法 ax+by=c 求解a,b if(!b) {原创 2021-09-09 15:09:19 · 290 阅读 · 0 评论 -
求组合数的各种方法 (Lacus等) (理论待更新,目前只有模板)
理论待更新,今天更完Lacus定理注意!如果m%p>n%p,那么C(n%p,m%p,p)=0 也就是下标小于上标 结果也就是0了 这一点务必要注意#include<cstdio>//求单个组合数 卢卡斯定理 n<=1e18 m<=1e18 p为素数但比较小! p<=1e4 注意!如果m%p>n%p,那么C(n%p,m%p,p)=0 也就是下标小于上标 结果也就是0了 这一点务必要注意 #include<string.h>//易错:计算时.原创 2021-08-30 06:13:15 · 286 阅读 · 0 评论 -
莫比乌斯反演
https://blog.csdn.net/tomandjake_/article/details/81083703上面这篇文章讲得很好下面我对模板做一些分析int mu[maxn], vis[maxn];int primes[maxn], cnt;void get_mu() { memset(vis, 0, sizeof(vis)); memset(mu, 0, sizeof(mu)); cnt = 0; mu[1] = 1; for (int i = 2; i <= ma转载 2021-08-29 03:40:25 · 95 阅读 · 0 评论 -
扩展欧几里得 逆元 逆元打表
参考文献逆元打表扩展欧几里得+求单个逆元原理详阅,不再赘述typedef long long ll;ll exgcd(ll a,ll b,ll &x,ll &y){//扩展欧几里得算法 ax+by=c 求解a,b if(!b){ x=1,y=0; return a; } ll ans=exgcd(b,a%b,x,y); ll temp=x; x=y; y=temp-a/b*y; re原创 2021-08-29 02:38:33 · 141 阅读 · 0 评论 -
中国剩余定理(孙子定理)
参考文献感谢武大佬的PPT和精彩讲解模板(有一处错误)扩展欧几里得算法题意:人自出生起就有体力,情感和智力三个生理周期,分别为23,28和33天。一个周期内有一天为峰值,在这一天,人在对应的方面(体力,情感或智力)表现最好。通常这三个周期的峰值不会是同一天。现在给出三个日期,分别对应于体力,情感,智力出现峰值的日期。然后再给出一个起始日期,要求从这一天开始,算出最少再过多少天后三个峰值同时出现。分析: 首先我们要知道,任意两个峰值之间一定相距整数倍的周期。假设一年的第N天达到峰值,则转载 2021-08-29 01:53:57 · 814 阅读 · 0 评论 -
二分乘法a*b%m 解决a*b远超int
二分乘法主要是解决乘法的结果远超int范围,但需要的结果有取余的乘法运算对于a*b%m来说,如果b为奇数,ans+a,把b变为偶数如果b为偶数,我们令b减半,a翻倍类似快速幂的思想ll multi(ll a,ll b,ll m){//a*b%m 解决乘法的结果远超int范围,但需要的结果有取余的乘法运算 ll ans=0; a%=m; while(b){ if(b&1)//b为奇数时变偶数 ans=(ans+a)%m,原创 2021-08-29 00:48:34 · 289 阅读 · 0 评论 -
素数筛 欧拉函数
参考文献特别鸣谢武大佬的PPT素数筛素数及其相关定理一、素数定义 基本概念素数又称质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 易错点1不是质数,写题要注意出题人出0,1卡你,质数大于1唯一分解定理一个数n肯定能被分解成 n=p1^a1 * p2^a2 . . .*pn^an(p是素因子,a是素因子的个数)因为一个数肯定是由合数和质数构成的,合数又可以分解成质数和合数,最后递归下去就会变成质数的乘积最后化成了质数相乘的形式二、素数的原创 2021-08-27 19:39:37 · 601 阅读 · 0 评论