$exLucas$学习笔记
本来不打算写了的,,,但是感$jio$理解起来还是有点儿难度的来着,,,$so$还是瞎写点儿趴$QAQ$
$exLucas$主要有三步:
1)唯一分解$mod$并预处理$p^{k}$以内的阶乘
2)计算组合数并计算$p$的个数
3)用$crt$合并答案
$umm$大概具体港下,,,$QAQ$
就首先拆下,$mod=\prod_{i=1}^{m} p_{i}^{c_i}$
然后对组合数,$\binom{n}{m}=\frac{n!}{m!\cdot (n-m)!}$,对每个$p_{i}^{c_i}$做一遍,最后用$crt$就好
具体来说,首先显然考虑的是对$n!$,$m!$,$(n-m)!$质因数分解,但是这儿要注意的是显然$p$的倍数的存在会导致一些乱七八糟的存在,所以对$p$的倍数单独处理下
对每个$p$,首先搞出$n!$,$m!$,$(n-m)!$内分别有多少个$p$的倍数,设数量为$f[i]$,则有$f[i]=f[i/p]+i/p$,听起来有点儿像$Lucas$,,,?大概意会下,就说首先这个范围内会有i/p个,但要注意的是有可能存在麻油被赶尽杀绝的,,,比如,$p^{2}$,$p^{3}$这样儿的,$so$还要继续做下去,就是$f[i/p]$.然后就可以求出,$p$的倍数有$f_{n}-f_{m}-f_{n-m}$个,这个单独快速幂下
然后对于剩下的,因为$x\cdot p+y\equiv y$,所以考虑每$p^c$个分一组,就只要做出一组,剩下的都一样儿,矩阵快速幂就好
最后$crt$合并下就欧克辣
综上,$exLucas$主要需要的就是$exgcd$和$crt$,会了这两个之后再尝试理解下打下代码应该还是麻油太难的$QwQ$
放下练手题,,,
$tbc.$
($umm$我知道讲得还是不太清楚,,,等有时间$upd$下有条理地梳理下$exLucas$的步骤趴$QwQ$
随机推荐
- Android Tween和Frame 动画
关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移.缩放. ...
- 如何用Chrome浏览器下载网页音乐视频
打开网页,先让要下载的视频播放,右键单击选择审查元素(F12),选择上方的Network选项,按F5刷新,这个时候我们可以看到框架中Size下的不少文件数据数字正在变大,按size降序排列.点击表格的 ...
- notepad++最有用的快捷键
Ctrl+Tab 实现在多个打开的窗口间切换 Ctrl+Shift+Q 区块注释 Ctrl+K 行注释 Tab 缩进 Shift+Tab 删除缩进 先按住键盘上的“ctrl”键不放,然后滚动鼠标的 ...
- oracle函数 last_day(d1)
[功能]:返回日期d1所在月份最后一天的日期. [参数]:d1,日期型 [返回]:日期 [示例]select sysdate,last_day(sysdate) hz from dual; 返回:2 ...
- Twitter 宣布抛弃 Mesos,全面转向Kubernetes
摘要: 从最早Mesos“代言人”到如今的全面转向“Kubernetes Native”,Twitter的举动再一次佐证了‘Kuberentes已经成为容器编排事实标准’这一断言. 本文作者:张磊 阿 ...
- 学习meta标签http-equiv属性
meta标签http-equiv属性的使用:meta标签http-equiv属性的使用
- 检查进程启动情况,开始时间、启动时间、启动进程数、进程数是否正确、PID
#!/bin/sh bin=$(cd ``;pwd) cd ${bin} ### 定义检查函数 chk(){ programName=$ correctNum=$ programSubName=$ # ...
- spring boot与activiti集成实战 转
为什么80%的码农都做不了架构师?>>> 这是原作者的博客地址 http://wiselyman.iteye.com/blog/2285223 代码格式混乱,我修正了一下.项目源码在 ...
- HDU 1114 完全背包 HDU 2191 多重背包
HDU 1114 Piggy-Bank 完全背包问题. 想想我们01背包是逆序遍历是为了保证什么? 保证每件物品只有两种状态,取或者不取.那么正序遍历呢? 这不就正好满足完全背包的条件了吗 means ...
- 2019-8-31-jekyll-在博客添加流程图
title author date CreateTime categories jekyll 在博客添加流程图 lindexi 2019-08-31 16:55:59 +0800 2018-2-13 ...