博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 3037 Saving Beans [Lucas定理]
阅读量:6575 次
发布时间:2019-06-24

本文共 907 字,大约阅读时间需要 3 分钟。

不超过n个球放入m个盒子方案数,盒子可以为空

1 <= n, m <= 1000000000, 1 < p < 100000 and p is guaranteed to be a prime.


首先隔板法${n+m-1\choose {m-1}}={n+m-1\choose {n}}$

答案为$\sum\limits_{i=0}^{n}{i+m-1\choose {i}}$

这个求和列出来后发现可以用组合数的递推公式合并,因为${n-1\choose 0}={n\choose 0}$

最后就是${m+n\choose m}$

 

注意不要预处理逆元啦会TLE(测试组数太多),预处理阶乘行啦

#include 
#include
#include
#include
#include
using namespace std;typedef long long ll;const int N=100007;inline ll read(){ char c=getchar();ll x=0,f=1; while(c<'0'||c>'9'){
if(c=='-')f=-1;c=getchar();} while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();} return x*f;}ll n,m,P;ll fac[N];void iniFac(int n){ fac[0]=1; for(int i=1;i<=n;i++) fac[i]=i*fac[i-1]%P;}ll Pow(ll a,int b){ ll re=1; for(;b;b>>=1,a=a*a%P) if(b&1) re=re*a%P; return re;}ll Inv(ll a){
return Pow(a,P-2);}ll C(ll n,ll m){ if(n

 

 

 

转载地址:http://cwgjo.baihongyu.com/

你可能感兴趣的文章
我的第一篇博客
查看>>
页面前端的水有多深?再议页面开发
查看>>
我的firefox插件开发历程
查看>>
我很高兴找了一张可以说明:为什么软件开发那么困难的图
查看>>
iOS:翻页效果
查看>>
(原创)Python文件与文件系统系列(5)——stat模块
查看>>
【ABAP】Cross client master/business data transfer guide(ALE &I Doc)
查看>>
一个中型项目:本地校园App
查看>>
BZOJ2809:[Apio2012]dispatching——题解
查看>>
WEBSHELL
查看>>
[转] 残差网络
查看>>
个人作业——软件工程实践总结作业
查看>>
[转载]依赖注入那些事
查看>>
学习笔记===《用户体验要素——以用户为中心的产品设计》
查看>>
CentOS搭建Git服务器
查看>>
多线程篇六:线程池
查看>>
easyui tab页面关闭根据回调函数刷新父tab页
查看>>
GPS围栏两个多边形相交问题的奇葩解法
查看>>
PHPstorm如何导入字体主题
查看>>
静态链表
查看>>