jzoj5945
這題是均分紙牌求方案數
我們可以分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的更多相关文章
随机推荐
- Error writing temporary file. Make sure your temp folder is valid
NSIS Error:Error writing temporary file. Make sure your temp folder is valid的解决 老婆用了自己的WIN7系统一段时 ...
- 深入浅出 JMS(三) - ActiveMQ 安全机制
深入浅出 JMS(三) - ActiveMQ 安全机制 一.认证 认证(Authentication):验证某个实体或者用户是否有权限访问受保护资源. MQ 提供两种插件用于权限认证: (一).Sim ...
- 关于document.write(来自网络)
对象属性: document.title //设置文档标题等价于HTML的<title>标签document.bgColor / ...
- Metro Revealed: Building Windows 8 apps with XAML and C# 阅读笔记
第一章1.1.3中提到 Jesse Liberty 的<Pro Windows 8 Development with XAML and C#>,这是一本关于win8更全面的书,以后看.
- 第六章 副词(Les adverbes )
副词属于不变词类,无性.数变化(tout除外),它的功能是修饰动词.形容词.副词或句子. ➡副词的构成 ⇨单一副词 bien tard hier mal vite tôt très souvent ...
- 使用百度webuploader实现大文件上传
版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...
- post同步请求
// http://api.hudong.com/iphonexml.do?type=focus-c //post请求中url不带请求参数,请求参数在参数HTTPBody中设置, 需要创建可变 ...
- Python + Robotframework + Appium 之APP自动化测试实践(二)
废话不多说,直接来实践(二),本次基于Android手机Settings模块下的search功能进行的自动化测试,代码如下 : *** Settings *** Library AppiumLibra ...
- 如何更新world文档的目录
在想要设置目录的文档页,右键 -> 更新域, 或者在想要设置目录的文档页,按下 F9 即可 拓展: 在目录文档页 ,按Ctrl 并且单击鼠标可以跟踪目标连接 如果内容对您有所帮助,请打赏--- ...
- 【OSGI】1.初识OSGI-到底什么是OSGI
目前,业内关于OSGI技术的学习资源或者技术文档还是很少的.我在某宝网搜索了一下“OSGI”的书籍,结果倒是有,但是种类少的可怜,而且几乎没有人购买. 因为工作的原因我需要学习OSGI,所以我不得不想 ...