Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
98671 | CSYZCaoMY | ssh | C++ | 运行超时 | 0 | 1000 MS | 2212 KB | 912 | 2023-08-16 12:16:41 |
#include<bits/stdc++.h> #define mod (1000000007) using namespace std; struct query{ int n,k,id; }q[100005]; long long ans[100005],f[100005]; int main(){ int t,now=0; scanf("%d",&t); for(int i=1;i<=t;i++) scanf("%d%d",&q[i].n,&q[i].k),q[i].id=i; sort(&q[1],&q[t+1],[](query x,query y){ return (x.n==y.n?x.k<y.k:x.n<y.n); }); f[0]=1; for(int i=1;i<=t;i++){ int nn=q[i].n,kk=(q[i].k<nn?q[i].k:nn),ii=q[i].id; if(now<nn) for(int j=now+1;j<=nn;j++){ f[j]=f[j-1]*2%mod; for(int k=j-1;k;k--) f[k]=(f[k]+f[k-1])%mod; } ans[ii]=f[kk]; } for(int i=1;i<=t;i++) printf("%lld\n",ans[i]); return 0; }/* Samples 1: Input: 10 1 1 3 2 5 2 8 3 12 0 642 246 2222 999 2525 21 50000 25000 100000 100000 Output: 2 7 16 93 1 321969783 856998846 371661809 969409843 607723520 */