2 条题解
-
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL P=1000003; LL fac[1110000]; LL qpow(LL a,LL b) { LL ans=1%P;a%=P; for(;b>0;b>>=1) { if(b&1)ans=ans*a%P; a=a*a%P; } return ans; } LL C(LL n,LL m) { if(n<m) return 0; return fac[n]*qpow(fac[m],P-2)%P*qpow(fac[n-m],P-2)%P; } LL Lucas(LL n,LL m) { if(m==0) return 1; return C(n%P,m%P)*Lucas(n/P,m/P)%P; } int main() { LL T,n,l,r; cin>>T; fac[0]=1;for(int i=1;i<=P;i++)fac[i]=fac[i-1]*i%P; while(T--) { cin>>n>>l>>r; LL ans= (Lucas(r-l+1+n,n)-1+P )%P; printf("%lld\n",ans); } return 0; } -
0

#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL P=1000003; LL fac[1110000]; LL qpow(LL a,LL b) { LL ans=1%P;a%=P; for(;b>0;b>>=1) { if(b&1)ans=ans*a%P; a=a*a%P; } return ans; } LL C(LL n,LL m) { if(n<m) return 0; return fac[n]*qpow(fac[m],P-2)%P*qpow(fac[n-m],P-2)%P; } LL Lucas(LL n,LL m) { if(m==0) return 1; return C(n%P,m%P)*Lucas(n/P,m/P)%P; } int main() { LL T,n,m,l,r; cin>>T; fac[0]=1;for(int i=1;i<=P;i++)fac[i]=fac[i-1]*i%P; while(T--) { cin>>n>>l>>r; LL ans= (Lucas(r-l+1+n,n)-1+P )%P; printf("%lld\n",ans); } return 0; }
- 1
信息
- ID
- 6068
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 28
- 已通过
- 12
- 上传者