https://blog.csdn.net/sr_19930829/article/details/39058487

 LL Lucas(LL n, LL m, int p){
return m ? Lucas(n/p, m/p, p) * comb(n%p, m%p, p) % p : ;
}

Saving Beans HDU3037

#include <iostream>
#include <string.h>
#include <cmath>
using namespace std;
typedef long long ll;
const int maxm = 1e5 + ;
ll fac[maxm]; void init(ll p) {
fac[]=;
for(int i = ; i <= p; i++)
fac[i] = fac[i - ] * i % p;
} ll qpow(ll x, ll n, ll mod) {
ll res = ;
while (n > ) {
if (n & ) {
res = res * x % mod;
}
x = x * x % mod;
n >>= ;
}
return res;
} ll lucas(ll n, ll m, ll p)
{
ll res = ;
while(n && m)
{
ll a = n % p;
ll b = m % p;
if(a < b) return ;
res = (res * fac[a] * qpow(fac[b] * fac[a - b] % p, p - , p)) % p;
n /= p;
m /= p;
}
return res;
} int t;
ll n, m, p;
int main() {
scanf("%d", &t);
while(t--) {
scanf("%lld%lld%lld", &n, &m, &p);
init(p);
printf("%lld\n", lucas(n + m, m, p));
}
return ;
}

大组合数Lucas的更多相关文章

  1. Lucas 大组合数

    题目:HDU 3037 题意:有n个树,m个坚果,放到n个树里,可以不放完,有多少种方法. 分析: 得到组合数了. 大组合数什么费马小定理,Lucas定理都来了: 总的说,不能用二维地推了,用的却是组 ...

  2. 大组合数取模之lucas定理模板,1<=n<=m<=1e9,1<p<=1e6,p必须为素数

    typedef long long ll; /********************************** 大组合数取模之lucas定理模板,1<=n<=m<=1e9,1&l ...

  3. uoj86 mx的组合数 (lucas定理+数位dp+原根与指标+NTT)

    uoj86 mx的组合数 (lucas定理+数位dp+原根与指标+NTT) uoj 题目描述自己看去吧( 题解时间 首先看到 $ p $ 这么小还是质数,第一时间想到 $ lucas $ 定理. 注意 ...

  4. lucas定理解决大组合数取模

    LL MyPow(LL a, LL b) { LL ret = ; while (b) { ) ret = ret * a % MOD; a = a * a % MOD; b >>= ; ...

  5. 大组合数:Lucas定理

    最近碰到一题,问你求mod (p1*p2*p3*……*pl) ,其中n和m数据范围是1~1e18 , l ≤10 , pi ≤ 1e5为不同的质数,并保证M=p1*p2*p3*……*pl ≤ 1e18 ...

  6. [Swust OJ 247]--皇帝的新衣(组合数+Lucas定理)

    题目链接:http://acm.swust.edu.cn/problem/0247/ Time limit(ms): 1000 Memory limit(kb): 65535   Descriptio ...

  7. 【BZOJ-4591】超能粒子炮·改 数论 + 组合数 + Lucas定理

    4591: [Shoi2015]超能粒子炮·改 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 95  Solved: 33[Submit][Statu ...

  8. HDU 5698 大组合数取模(逆元)

    瞬间移动 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  9. luogu4345 [SHOI2015]超能粒子炮·改(组合数/Lucas定理)

    link 输入\(n,k\),求\(\sum_{i=0}^k{n\choose i}\)对2333取模,10万组询问,n,k<=1e18 注意到一个2333这个数字很小并且还是质数这一良好性质, ...

随机推荐

  1. 2019-08-09 纪中NOIP模拟B组

    T1 [JZOJ1035] 粉刷匠 题目描述 windy有N条木板需要被粉刷. 每条木板被分为M个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一 ...

  2. sort函数的用法(C++排序库函数的调用)

    对数组进行排序,在c++中有库函数帮我们实现,这们就不需要我们自己来编程进行排序了. (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c+ ...

  3. EasyExcel实现导入excel

    https://blog.csdn.net/rexueqingchun/article/details/91870372 1.pom.xml配置依赖包 <!-- xls格式excel依赖包 -- ...

  4. ASP.NET Identity-验证与授权及管道事件

    https://www.cnblogs.com/OceanEyes/p/thinking-in-asp-net-mvc-apply-asp-net-identity-authentication.ht ...

  5. 计蒜客 - A1603.天上的星星

    二维差分,理论上很简单,虽然我实际上做的时候一堆问题 1.边界的星星包含在内,需要在减去的时候往前挪一个 2.我是从0开始的,循环的时候非常不方便 3.x1, x2, y1, y2总是弄混 #incl ...

  6. ADO.NET中sqlserver和mysql的变量名

    因为ADO.NET标配是访问SQL SERVER数据库,那么如果需要访问MySQL数据库,那么ADO.NET五个对象也必须转换. 访问 SQL SERVER 的ADO.NET对象 1.SqlConne ...

  7. xstart访问centos7

    参考文档:https://blog.csdn.net/wuzhimang/article/details/51523867

  8. JS高级---函数作为返回值使用

    函数作为返回值使用 function f1() { console.log("f1函数开始"); return function () { console.log("函数 ...

  9. Django中间件,CSRF(跨站请求伪造),缓存,信号,BootStrap(模板)-响应式(栅格)+模板

    Django中间件,CSRF(跨站请求伪造),缓存,信号,BootStrap(模板)-响应式(栅格)+模板 1.中间件(重要): 在Django的setting中有个MIDDLEWARE列表,里面的东 ...

  10. 三种方法获取 lua时间戳

    ngx.now()    返回:1523174287.735    毫秒级精度的时间戳(获取的是nginx缓存的时间戳,并非实时刷新, 如果希望刷新,可以在获取前一行加上 ngx.update_tim ...