Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
98608 | CSYZ_WanYL | ssh | C++ | 运行超时 | 10 | 1000 MS | 3400 KB | 1095 | 2023-08-16 12:08:24 |
#include<bits/stdc++.h> #define int long long using namespace std; const int N=1e5+5; const int mod=1e9+7; int fac[N]; int sum[N]; int ansi; struct node{ int n,k; }q[N]; int qpow(int x,int y){ int cur=1; while(y){ if(y&1) cur=cur*x%mod; x=x*x%mod; y>>=1; } return cur; } int C(int n,int m){ return fac[n]*qpow((fac[m]*fac[n-m])%mod,mod-2)%mod; } void baoli(int n,int k){ ansi=0; for(int i=0;i<=k;i++){ ansi=(ansi+C(n,i))%mod; // cout<<C(n,i)<<" "; } cout<<ansi<<"\n"; } signed main(){ // freopen("ssh.in","r",stdin); // freopen("ssh.out","w",stdout); ios::sync_with_stdio(false); fac[0]=1; for(int i=1;i<=(int)1e5;i++) fac[i]=(fac[i-1]*i)%mod; //cout<<C(2,1); // cout<<pow(0,1); bool A=true; int t; cin>>t; for(int i=1;i<=t;i++){ cin>>q[i].n>>q[i].k; if(i!=1&&q[i].n!=q[i-1].n) A=false; } if(A==true){ for(int i=0;i<=q[1].n;i++) sum[i]=(sum[i-1]+C(q[1].n,i))%mod; for(int i=1;i<=t;i++) cout<<sum[q[i].k]<<"\n"; return 0; } for(int i=1;i<=t;i++) baoli(q[i].n,q[i].k); return 0; }