![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
AcWing
穷源溯流
路很长,尽管走便是。
展开
-
AcWing 213 古代猪文(中国剩余定理+卢卡斯定理+因数分解)
挺好的一道数论题目,知识点很全面由于 n,p 数值范围大,所以需要进行化简,首先易发现 999911659 是一个素数,所以利用欧拉函数的推论,原式:但是由于计算组合系数的过程中还是没有得到化简,但是观察 p={2,3,4679,35617} 可以分解成如此开始枚举 n 的因数,利用卢卡斯定理计算,在累加之后,拥有了 sum[i]=sum%p[i] 之后利用中国剩余定理,有四个方程,由于 p[]互为质数,所以求解 sum 时比较简单const ll mod=99...原创 2020-11-01 13:22:17 · 279 阅读 · 0 评论 -
POJ 1845 &&AcWing 97. 约数之和(费马小定理求逆元)
根据约数和的推论知道:A 分解质因数后为,那么可以分解成如下的形式对于每一个括号内的式子,我们可以利用等比数列求和公式来完成例如第一个括号可以等价为由于 mod=9901 为质数,所以很容易想到利用 费马小定理 去求解逆元,但是由于 p-1 可能会大于 mod ,所以 p-1 可能为 mod 的倍数关系,所以需要进行特判根据公式:其实也很好想,对于每一个括号内的 p ,对其求余数,都为 1,所以累计求和为 1*Ci+1最后不要忘记是求解就好,最后加个特判...原创 2020-10-29 16:06:53 · 204 阅读 · 0 评论 -
POJ3696 && AcWing 202. 最幸运的数字(欧拉函数)
8是中国的幸运数字,如果一个数字的每一位都由8构成则该数字被称作是幸运数字。现在给定一个正整数L,请问至少多少个8连在一起组成的正整数(即最小幸运数字)是L的倍数。输入格式输入包含多组测试用例。每组测试用例占一行,包含一个整数L。当输入用例L=0时,表示输入终止,该用例无需处理。输出格式每组测试用例输出结果占一行。结果为“Case 1: ”+一个整数N,N代表满足条件的最小幸运数字的位数。如果满足条件的幸运数字不存在,则N=0。首先做一步转化为 : 另 d.原创 2020-10-29 14:57:17 · 273 阅读 · 0 评论 -
AcWing 211. 计算系数
求解 :由于 p =10007 为质数,所以用费马小定理,计算出 n! m! 的逆元求解即可const ll mod=10007;const int N=1000+5; int n,m,t; int i,j,k; //int a[N];ll pow_mod(ll a,ll x,ll mod){ ll ans=1; a%=mod; while(x){ if(x&1) ans=ans*a%mod; ...原创 2020-10-24 10:14:24 · 176 阅读 · 2 评论