Infinity+1

导航

 

Chosen by god

 。。。

 

 

 

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstdio>
 4 #define re(i,m,n) for(int i=m;i<=n;i++)
 5 typedef long long LL;
 6 using namespace std;
 7 
 8 const LL mod= 1e9+7;
 9 const int N = 1e3+1;
10 LL fact[N], ifact[N], inv[N];
11 LL a[N];
12 void init(){
13     fact[0]=1; re(i, 1,N) fact[i]=fact[i-1]*i%mod;
14     inv[1]=1;  re(i, 2,N) inv[i]=(mod-mod/i)*inv[mod%i]%mod;
15     ifact[0]=1;re(i, 1,N) ifact[i]=ifact[i-1]*inv[i]%mod;
16 }
17 LL Cnm(LL n, LL m){
18     return fact[n]*ifact[n-m]%mod*ifact[m]%mod;
19 }
20 LL ans[N][N];
21 LL c[N][N];
22 LL e[N];
23 int main(){
24     init();
25     re(i,0,1000){
26         c[i][0]=1;
27         re(j,1,i)
28             c[i][j]=(c[i][j-1]+Cnm(i,j))%mod;
29     }
30     e[0]=1;
31     re(i, 1,1000) e[i]=e[i-1]*inv[2]%mod;
32     re(i,1,1000){
33         ans[i][0]=1;
34         re(j,1,i)
35             ans[i][j]=(c[i][i]-c[i][j-1]+mod)%mod*e[i]%mod;
36     }
37     int T;cin>>T;
38     while(T--){
39         int n, m;
40         scanf("%d%d", &n,&m);
41         printf("%lld\n", ans[n][m]);
42     }
43     return 0;
44 }
View Code

 

posted on 2019-04-23 21:23  Infinity+1  阅读(187)  评论(0)    收藏  举报