随笔分类 -  数论&数学

摘要:Description 给定n,k,求 $(\sum\limits_{i=0}^{k}{C_n^i})\ mod\ 2333$ Solution 首先,我们要用到卢卡斯定理:$$C_n^m\ mod\ p=C_{n/p}^{m/p}*C_{n\ mod\ p}^{m\ mod\ p}\ mod\ p 阅读全文
posted @ 2019-07-24 12:57 AD_shl 阅读(225) 评论(0) 推荐(0)
摘要:模板题在这里 卢卡斯定理适用于求解组合数取模,而且模数为质数且不大的情况。 具体地,卢卡斯定理可以这样表示 $$C_n^m\mod p=C_{n/p}^{m/p}*C_{n\mod p}^{m\mod p}\mod p$$ 我们首先预处理出一个阶乘数组,一个mod p的逆元数组,当数值较小时,我们可 阅读全文
posted @ 2019-07-24 09:45 AD_shl 阅读(263) 评论(0) 推荐(0)
摘要:Description 两个物体在一个周长为l的环上同方向运动, A初始时位置为a,速度为m,B初始位置为b,速度为n,求何时相遇。 Solution 根据题意,我们不难列出方程,推导如下 $a+mt \equiv {b+nt} \pmod l$ $(m-n)t \equiv {b-a} \pmod 阅读全文
posted @ 2019-07-23 15:35 AD_shl 阅读(207) 评论(0) 推荐(0)
摘要:众所周知,乘法逆元可以通过Exgcd和费马小定理求解,如果我们在题目中需要预处理连续的一段数的逆元,我们需要更高效的算法求解。 1.线性递推求解乘法逆元 首先,我们声明在下列计算中同余均是在模p意义下 我们可以简单计算1-1≡1 考虑任意正整数i,假定i-1的逆元已经正确计算,我们递推方程的计算过程 阅读全文
posted @ 2019-06-26 17:29 AD_shl 阅读(823) 评论(0) 推荐(3)
摘要:众所周知,扩展欧几里得算法(下文统称Exgcd)能求解二元一次方程的整数解,乘法逆元、线性模方程等。本文我将简单的介绍该算法。 形如ax+by=gcd(a,b) 的方程,我们可以用Exgcd求出其最小整数解。我们考虑如何求解。 当b=0时,方程右边的值为a,那么显然可得x=1,y=0。 现在假设当前 阅读全文
posted @ 2019-06-25 20:57 AD_shl 阅读(2110) 评论(2) 推荐(2)
摘要:欧拉函数是指对于正整数x,小于或等于x的数中与x互质的数的数量,通常用φ(x)表示。 我们先看一道例题 对题意进行分析,可以得到最小生成树中的两个直接连通的点的gcd一定是1,我们要统计最小生成树的个数,也就是求1~n每个数的欧拉函数值之和。 因此,对于一个正整数x,我们需要计算欧拉函数φ(x)。 阅读全文
posted @ 2019-06-25 19:54 AD_shl 阅读(566) 评论(0) 推荐(0)