题解 34:P17762 「奶龙OI」Round 3 - 跑酷大神
思路
不难发现,分成的这
也就是说,我们把原数组排一个序,在
于是所有左端点排列的可能数就为
但是考虑左右端点可以互换。则每一对都可以交换,有两种可能。总共就是
共计
代码
ll t,n,k,ans,jc[N],jc2[N],a[N];
bool flag;
int main(){
t=read();
jc[0]=jc2[0]=1;
for(ll i=1;i<N/2;i++){
jc[i]=jc[i-1]*i%mod;//预处理阶乘
jc2[i]=jc2[i-1]*2%mod;//预处理 2 的幂
}
while(t--){
n=read();
ll ans=(jc[n]*jc[n])%mod*jc2[n]%mod;//可行的排列数
for(ll i=1;i<=2*n;i++) a[i]=read();
sort(a+1,a+n*2+1);
ans=ans*(a[n+1]-a[n])%mod;//总代价
write(ans);
putchar('\n');
}
return 0;
}