BZOJ 4403 2982 Lucas定理模板
2024-08-24 07:41:47
思路:
Lucas定理的模板题..
4403
//By SiriusRen
#include <cstdio>
using namespace std;
const int mod=;
#define int long long
int cases,N,L,R,fac[mod],inv[mod];
int C(int n,int m){
if(n<m)return ;
if(n<mod&&m<mod)return fac[n]*inv[n-m]%mod*inv[m]%mod;
return C(n/mod,m/mod)*C(n%mod,m%mod)%mod;
}
signed main(){
fac[]=inv[]=inv[]=;
for(int i=;i<mod;i++)fac[i]=fac[i-]*i%mod;
for(int i=;i<mod;i++)inv[i]=(mod-mod/i)*inv[mod%i]%mod;
for(int i=;i<mod;i++)inv[i]=inv[i-]*inv[i]%mod;
scanf("%lld",&cases);
while(cases--)scanf("%lld%lld%lld",&N,&L,&R),printf("%lld\n",(C(N+R-L+,R-L+)-+mod)%mod);
}
2982
//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define int long long
const int p=;
int fac[p],inv[p],n,m,cases;
int C(int i,int j){
if(i<j)return ;
if(i<p&&j<p)return fac[i]*inv[j]%p*inv[i-j]%p;
return C(i/p,j/p)*C(i%p,j%p)%p;
}
signed main(){
fac[]=fac[]=inv[]=inv[]=;
for(int i=;i<p;i++)fac[i]=fac[i-]*i%p;
for(int i=;i<p;i++)inv[i]=(p-p/i)*inv[p%i]%p;
for(int i=;i<p;i++)inv[i]=inv[i-]*inv[i]%p;
scanf("%lld",&cases);
while(cases--){
scanf("%lld%lld",&n,&m);
printf("%lld\n",C(n,m));
}
}
最新文章
- angularjs, nodejs, express, gulp, karma, jasmine 前端方案整合
- ARM体系的异常中断
- Spring的IOC
- FastJSON应用前测试
- Java方法区和运行时常量池溢出问题分析(转)
- static关键字,引发的spring普通类获取spring的bean的思考
- 基于 Django2 实现邮箱注册登录功能
- iOS开发简记(4):录音AVAudioRecorder
- Scrapy项目创建以及目录详情
- 接口测试基础——第3篇smtplib发送带图片的邮件
- git安装及基础用法
- Two Sum II - Input array is sorted LT167
- Curling 2.0(DFS简单题)
- java Stack(栈)
- LOJ2540. 「PKUWC2018」随机算法【概率期望DP+状压DP】
- React Native常用组件样式总结
- 浅谈 PHP 中的多种加密技术及代码示例
- 对pandas的dataframe绘图并保存
- 学习Selenium同学必看
- 获取select标签选中的值