B. Marin and Anti-coprime Permutation
题意:
构造一个排列满足
题解
考虑n等于2的时候
gcd(1p1,2p2)
容易想到最小的最大公约数为2,而且也只有可能为2.只要考虑二者的奇偶性与长度,当奇数与偶数个数不同时无解,否则将奇偶交错即可构造出一个合法方案。用乘法原理计数即可。
1-n:奇 偶 奇 偶
P:偶 奇 偶 奇
#include<iostream>
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
long long n,ans=1;
cin>>n;
if(n%2){cout<<"0\n";continue;}
for(int i=2;i<=n/2;i++){
ans*=i*i;
ans%=998244353;
}
cout<<ans<<endl;
}
}