比赛 |
20241125 |
评测结果 |
AAAAAAAA |
题目名称 |
张小牛日记 |
最终得分 |
100 |
用户昵称 |
徐诗畅 |
运行时间 |
0.035 s |
代码语言 |
C++ |
内存使用 |
3.58 MiB |
提交时间 |
2024-11-25 11:49:23 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int mod=1997;
int t,n;
int qpow(int a,int b){
int ans=1;
while(b){
if(b&1) ans=ans*a%mod;
a=a*a%mod;
b>>=1;
}
return ans%mod;
}
int fac[20005],inv[20005];
//int c(int x,int y){return fac[x]*inv[y]%mod*inv[x-y]%mod;}
int main(){
freopen("diary.in","r",stdin);
freopen("diary.out","w",stdout);
fac[0]=fac[1]=1;
for(int i = 2;i<=1996;i++) fac[i]=fac[i-1]*i%mod;
inv[1996]=qpow(fac[1996],mod-2);
for(int i = 1995;i>=0;i--) inv[i]=inv[i+1]*(i+1)%mod;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
int res=0;
if(n%2==1){puts("0"); continue;}
for(int i = 0;i<=n/2;i++)
res=(res+(fac[n]*inv[i]%mod*inv[i]%mod*inv[n/2-i]%mod*inv[n/2-i]))%mod;
printf("%d\n",res);
}
return 0;
}