提交时间:2023-08-16 09:19:16

运行 ID: 98535

#include<cstdio> using I=int;using L=long long;const I N=1e5+1,P=1e9+7; L fac[N],inv[N],fnv[N]; static inline L C(I n,I k){return fac[n]*fnv[k]%P*fnv[n-k]%P;} int main(){fac[0]=1;for(I i=1;i<N;i++)fac[i]=fac[i-1]*i%P; inv[1]=1;for(I i=2;i<N;i++)inv[i]=(P-P/i)*inv[P%i]%P; fnv[0]=1;for(I i=1;i<N;i++)fnv[i]=fnv[i-1]*inv[i]%P; I t;scanf("%d",&t);for(I n,k;t--&&scanf("%d%d",&n,&k);){ L w=0;for(int i=0;i<=k;i++)(w+=C(n,i))%=P;printf("%lld\n",w);}}