我是靠谱客的博主 含糊香水,最近开发中收集的这篇文章主要介绍D. Divide and Sum(思维+组合数),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=998244353;
const int N=150000+100;
int a[2*N];
ll sum[2];
int fac[2*N];
int infac[2*N];
ll qp(int a,int b){
ll ans=1;
while(b){
if(b&1){
ans=ans*a%mod;
}
a=1ll*a*a%mod;
b>>=1;
}
return ans;
}
void init(){
fac[0]=1;
infac[0]=1;
for(int i=1;i<2*N;i++){
fac[i]=1ll*fac[i-1]*i%mod;
infac[i]=1ll*infac[i-1]*qp(i,mod-2)%mod;
}
}
int main(){
init();
int n;scanf("%d",&n);
n*=2;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
sort(a+1,a+1+n);
for(int i=1;i<=n/2;i++) sum[0]=sum[0]+a[i];
for(int i=n/2+1;i<=n;i++) sum[1]=sum[1]+a[i];
//cout<<infac[n/2]<<endl;
ll ans=1ll*(sum[1]-sum[0]+mod)%mod*fac[n]%mod*infac[n/2]%mod*infac[n/2]%mod;
printf("%lldn",ans);
return 0;
} 

 

最后

以上就是含糊香水为你收集整理的D. Divide and Sum(思维+组合数)的全部内容,希望文章能够帮你解决D. Divide and Sum(思维+组合数)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部