2 条题解
-
0
#include <bits/stdc++.h> using namespace std; typedef long long LL; const LL P=5000011; LL fac[210000]; LL qpow(LL a, LL b) { LL ans=1%P;a%=P; for(;b;b>>=1) { if(b&1)ans=ans*a%P; a=a*a%P; } return ans; } LL C(LL n, LL m) { if(m>n)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; else return C(n%P, m%P)*lucas(n/P, m/P)%P; } int main() { LL n, k;cin>>n>>k; fac[0]=1;for(int i=1;i<=2*n;i++)fac[i]=fac[i-1]*i%P; LL ans=1; for(int i=1;i<=(n+k)/(k+1);i++) { ans=(ans+lucas(n-(i-1)*k, i))%P; } cout<<ans<<endl; return 0; } -
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL P=5000011; LL fac[210000]; LL qpow(LL a,LL b) { LL ans=1%P;a%=P; for(;b;b>>=1) { if(b&1)ans=ans*a%P; a=a*a%P; } return ans; } LL C(LL n,LL m) { if(m>n)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; else return C(n%P,m%P)*lucas(n/P,m/P)%P; } int main() { LL n,k;cin>>n>>k; fac[0]=1;for(int i=1;i<=2*n;i++)fac[i]=fac[i-1]*i%P; LL ans=1; for(int i=1;i<=(n+k)/(k+1);i++) { ans=(ans+lucas(n-(i-1)*k,i))%P; } cout<<ans<<endl; return 0; }
- 1
信息
- ID
- 5063
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 62
- 已通过
- 16
- 上传者