包括:CRT LUCAS
先复习了一下CRT(扩展)
打了下hihocoder那个板子然后GG啦_(:зゝ∠)_
注意这种ll题 中间如果有除乘结合的部分
最好是试一下顺序。
不过如果是先除gcd再乘数 那么最好还是先除了吧反正不吃亏哇(如求lcm
然后以后要推式子要记得
把俩式拿出来 用相等化成exgcd 然后为了扩展解系 就 把它当做新的余数 相当于是把上面两个式子合并了再跟新式子合并
然后正常CRT是
上次我居然现推这种东西还花了很久……哇塞我是不是傻呀
然后下定决心去学了下lucas(我才不会说是因为知道扩展lucas要crt才写的呢qwq
另外我好似又忘了……QAQ
这个也忘了QAQ
扩展lucas打了我好久啊啊啊啊啊
说实话这玩意儿跟Lucas关系真的很大么……
半天扯不清系列
大概思路如下
对应到代码中
第一部分:calc(x/pi,pi,pk)
第二部分:
for (ll i=n;i;i/=pi) k+=i/pi;
for (ll i=m;i;i/=pi) k-=i/pi;
for (ll i=n-m;i;i/=pi) k-=i/pi;
qp(pi,k,pk)%pk
第三部分:
if (x/pk){
for (ll i=1;i<=pk;++i) if (i%pi) res=res*i%pk;
res=qp(res,x/pk,pk);
}//块内
for (ll i=1;i<=lef;++i) if (i%pi) res=res*i%pk;//块外
然后就是细节:各种循环——都要开longlong!!!!!!!!!!!!!! 不要随手就来一个int i=2;真的很sick哇!!!!!!
然后是要分清什么地方时除/模pi什么时候是除/模pk什么时候模P之类的
然后算那个阶乘的因子个数 注意是 for (ll i=n;i;i/=pi) k+=i/pi; 的
然后我希望我的exgcd不要再挂了真的QAQ
包括:
我怕是个废人了 今天又完完整整重学了一遍莫比乌斯
所以我要把学过的有关的数论方面的好好做一遍总结
不然学了又忘忘了又学浪费时间收效甚微
这一次我一定要尽量记下来_(:зゝ∠)_ 希望能用上。
最后
我已经不在乎美观了_(:зゝ∠)_
我希望我一定要记住