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 }
浙公网安备 33010602011771号