這題是均分紙牌求方案數

我們可以分2種情況討論:

1.當前面部分的平均值>=現在我們要的值

那麼我們可以把所有牌都放到第i個點,現在若有k張牌,則要把k−i∗avek-i*avek−i∗ave張牌放到後面

對答案的貢獻為c(a[i],k−i∗ave)c(a[i],k-i*ave)c(a[i],k−i∗ave),要更新現在的元素值

2.當前面部分平均值<現在我們要的值

那麼我們可以從後面抓i∗ave−ki*ave-ki∗ave−k張牌

由於我們要讓所有部分有aveaveave張牌,所以我們後面需要有ave+i∗ave−kave+i*ave-kave+i∗ave−k張牌,才可以讓抓牌後這部分有aveaveave張牌

所以對答案的貢獻為c((i+1)∗ave−s[i],i∗ave−s[i])c((i+1)*ave-s[i],i*ave-s[i])c((i+1)∗ave−s[i],i∗ave−s[i])

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define mo 998244353ll
ll t,n,a[1010],jc[1000010],ijc[1000010],s[1010];
ll qp(ll x,ll y){
	ll r=1;
	while(y){
		if(y&1)r=r*x%mo;
		x=x*x%mo;
		y>>=1;
	}
	return r;
}
void get(){
	jc[0]=1;
	for(ll i=1;i<=1000005;i++)
		jc[i]=jc[i-1]*i%mo;
	ijc[0]=1;
	for(ll i=1;i<=1000005;i++)
		ijc[i]=ijc[i-1]*qp(i,mo-2)%mo;
}
ll c(ll x,ll y){
	return jc[x]*ijc[x-y]%mo*ijc[y]%mo;
}
int main(){
	freopen("gwent.in","r",stdin);
	freopen("gwent.out","w",stdout);
	scanf("%lld",&t);
	get();
	while(t--){
		scanf("%lld",&n);
		for(ll i=1;i<=n;i++)
			scanf("%lld",&a[i]);
		for(ll i=1;i<=n;i++)
			s[i]=s[i-1]+a[i];
		ll k=s[n]/n,ans=1;
		for(ll i=1;i<=n;i++){
			ll va=s[i]-k*i;
			if(va>=0){
				ans=ans*c(a[i],va)%mo;
				a[i]-=va;
				a[i+1]+=va;
			}
			else ans=ans*c(-va+k,-va)%mo;
		}
		printf("%lld\n",ans);
	}
}

jzoj5945的更多相关文章

随机推荐

  1. 集合List与DataTable互转

    /// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...

  2. abort: no username supplied (see "hg help config")

    abort: no username supplied (see "hg help config") 在hg中输入commit 指令时,如果出现下述结果: $ hg commit ...

  3. OSGi 系列(十三)之 Configuration Admin Service

    OSGi 系列(十三)之 Configuration Admin Service OSGi 的 CM 就是 Configuration Admin Service,是用于管理 Bundle 属性.并在 ...

  4. 【原型实战】分分钟搞定Unsplash网站原型设计

    网站原型设计是我们在设计网页过程中必不可少的一步,激烈的市场竞争让我们不得不对产品进行快速迭代,如何高速有效的进行原型设计成为了设计师头疼的问题.本文将以unsplash网站为实例,教大家快速搞定we ...

  5. Android界面设计

    从继承关系来看,所有组件继承自View.容器也是继承自View,它能容纳别的View. 所有容器继承自ViewGroup.包括 FrameLayout, LinearLayout, RelativeL ...

  6. hadoop 学习(四)之java操作hdfs

    1.导入hadoop jar包 将hadoop/share/common/目录.hadoop/share/common/lib/目录.hadoop/hdfs/目录.下的jar包加入eclipse. 2 ...

  7. Spring boot 默认静态资源路径与手动配置访问路径的方法

    这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下   在application.propertis中配置 ##端口号 ...

  8. css样式记忆

    text-indent: 2em;   //开头空两格: display : none;    //隐藏元素 background:#CCC;  //背景颜色 background: url(imag ...

  9. hdu-2844(完全背包+二进制优化模板)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2844 思路:问1-m能的得到的硬币的值,所以dp[i]==i即可. #include<iostr ...

  10. python面向对象-3类的静态方法和类方法

    还是以上次的洗衣机例子: class Washer: company='ZBL' def __init__(self,water=10,scour=2): self._water=water #不想让 ...