提交时间:2023-08-16 12:08:44
运行 ID: 98616
#include<bits/stdc++.h> using namespace std; #define int long long const int MX=1e5+100,mod=1e9+7; int n,k;bool ob; struct ask{ int n,k; }in[MX]; int fast_pow(int x,int y){ int a=1; while(y){ if(y&1) a=a*x%mod; x=x*x%mod;y/=2; } return a; } int jc[MX],inv[MX],s[MX]; int C(int n,int m){ return jc[n]*inv[m]%mod*inv[n-m]%mod; } signed main(){ // freopen("ssh.in","r",stdin); // freopen("ssh.out","w",stdout); ios::sync_with_stdio(0); jc[0]=1;inv[0]=1; for(int i=1;i<=1e5;i++){ jc[i]=jc[i-1]*i%mod; inv[i]=fast_pow(jc[i],mod-2); } int t; cin>>t; for(int i=1;i<=t;i++){ cin>>in[i].n>>in[i].k; if(in[i].n!=in[i-1].n&&i>=2) ob=1; } if(!ob){ int n=in[1].n; s[0]=C(n,0); for(int i=1;i<=n;i++) s[i]=(s[i-1]+C(n,i))%mod; for(int i=1;i<=t;i++){ int k=in[i].k; cout<<s[k]<<'\n'; } return 0; } for(int i=1;i<=t;i++){ int n=in[i].n,k=in[i].k,ans=0; for(int i=0;i<=k;i++){ ans=(ans+C(n,i))%mod; } cout<<ans<<'\n'; } return 0; }