[BZOJ 4403]序列统计(Lucas定理)
Description
给定三个正整数N、L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量。输出答案对10^6+3取模的结果。
Solution
一个Lucas定理的模板
C(r-l+1+n,r-l+1)-1的推导:http://blog.csdn.net/lych_cys/article/details/50616439
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #define Mod 1000003 using namespace std; typedef long long LL; int T,n,l,r; LL fac[Mod],inv[Mod]; void init() { fac[0]=1,inv[1]=1; for(int i=1;i<Mod;i++) fac[i]=(fac[i-1]*i)%Mod; for(int i=2;i<Mod;i++) inv[i]=((Mod-Mod/i)*inv[Mod%i])%Mod; inv[0]=1;//inv[0]此时表示的是0的阶乘的逆,所以这句一定要加! for(int i=1;i<Mod;i++) inv[i]=(inv[i-1]*inv[i])%Mod; } LL C(LL x,LL y) { if(x<y)return 0; if(x<Mod&&y<Mod)return ((fac[x]*inv[y])%Mod*inv[x-y])%Mod; else return (C(x/Mod,y/Mod)*C(x%Mod,y%Mod))%Mod; } int main() { init(); scanf("%d",&T); while(T--) { scanf("%d%d%d",&n,&l,&r); printf("%d\n",(C(r-l+1+n,r-l+1)-1+Mod)%Mod); } return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee