jzoj4786-[NOIP2016提高A组模拟9.17]小a的强迫症【数论】
正题
题目大意
nnn个颜色第iii个个数为numinum_inumi个,然后要求第iii种颜色的最后一个一定在第i+1i+1i+1种的最后一个前面。求方案总数。
解题思路
首先先定义一个1∼n1\sim n1∼n的序列,然后依次将剩下的数插入。
第iii个颜色有z=(∑j=1i−1numj)+1z=(\sum_{j=1}^{i-1}num_j)+1z=(∑j=1i−1numj)+1个位置。那么方案数就是Cz+numi−1z−1C_{z+num_{i}-1}^{z-1}Cz+numi−1z−1
那么答案就是∑i=1nCz+numi−1z−1(z=(∑j=1i−1numj)+1)\sum_{i=1}^n C_{z+num_{i}-1}^{z-1}(z=(\sum_{j=1}^{i-1}num_j)+1)i=1∑nCz+numi−1z−1(z=(j=1∑i−1numj)+1)
codecodecode
#include<cstdio>
#define ll long long
using namespace std;
const ll XJQ=998244353,N=600100;
ll n,z,ans,jc[N],jcinv[N];
ll power(ll x,ll b)
{ll ans=1;while(b){if(b&1) ans=ans*x%XJQ;b>>=1;x=x*x%XJQ;}return ans;
}
ll C(ll n,ll m)
{return jc[n]*jcinv[m]%XJQ*jcinv[n-m]%XJQ;}
int main()
{jc[0]=1;jcinv[0]=1;for(ll i=1;i<=600000;i++){jc[i]=jc[i-1]*i%XJQ;jcinv[i]=power(jc[i],XJQ-2);}scanf("%lld",&n);z=ans=1;for(ll i=1;i<=n;i++){ll num;scanf("%lld",&num);num--;(ans*=C(num+z-1,z-1))%=XJQ;z+=num+1;}printf("%lld",ans);
}
jzoj4786-[NOIP2016提高A组模拟9.17]小a的强迫症【数论】相关推荐
- JZOJ4786. 【NOIP2016提高A组模拟9.17】小a的强迫症
Description Input Output Sample Input 3 2 2 1 Sample Output 3 样例解释: Data Constraint 分析 根据题目,我们可以知道, ...
- [JZOJ4788] 【NOIP2016提高A组模拟9.17】序列
题目 描述 题目大意 一个序列,每次可以使一段区间内的所有数加一(模四). 问最少的操作次数. 思考历程 一看这题目,诶,这不就是那道叫密码锁的题目吗? 然后随便打一打,样例过了,就再也没有思考这一题 ...
- JZOJ 4786. 【NOIP2016提高A组模拟9.17】小a的强迫症
Description Input Sample Input 3 2 2 1 Output Sample Output 3 样例解释: Data Constraint Solution 首先,我们设之 ...
- JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫
Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...
- JZOJ 5371. 【NOIP2017提高A组模拟9.17】组合数问题
Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数.举个例子,将{1,2,3}拆分成2 个集合有({1},{2,3}),({2},{1,3}),({3 ...
- JZOJ 100024. 【NOIP2016提高A组模拟7.6】数球
Description 小A有n个球,编号分别为1到n,小A每次都会从n个球中取出若干个球,至少取一个,至多取n个,每次取完再放回去,需要满足以下两个条件. 每次取出的球的个数两两不同. 每次取出的球 ...
- JZOJ4708. 【NOIP2016提高A组模拟8.20】奇洛金卡达 倒着做的思想+并查集维护
题目大意 给定一个长度小于等于kk的字符串和qq,表示现在有qq个操作,每个操作给定两个参数li,ril_i,r_i表示把现在的字符串第lil_i到rir_i把其中编号为奇数的按顺序写下来,再在后面把 ...
- 【NOIP2016提高A组模拟9.9】闭门造车
题目 自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店. 一走进商店,玲琅满目的各式零件看得htn眼花缭乱.但是他很快便反应过来 ...
- JZOJ 5373. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
Description Input Output Sample Input 3 3 0 1 1 7 1 1 6 1 3 2 Sample Output 1 0 1 7 0 5 Data Constra ...
最新文章
- 实现网页中增加刷新按钮、链接的方法 搜集
- 从C语言的角度重构数据结构系列(十二)-C语言判断语法详解(ifswitch)
- leetcode109. 有序链表转换二叉搜索树(递归)
- oracle确实表达式,ORACLE正规表达式
- rabbitmq的下载与安装windows-64
- python槽怎么用_【Python成长之路】从零学GUI -- 多窗口跳转(信号与槽函数用法)...
- 基于高光谱遥感技术的农作物病虫害应用研究现状
- 使用PDF Converter OCR for Mac如何区分扫描的PDF和普通文件?
- 语言abline画不出线_北师大版八下数学 2.1不等关系 知识点精讲
- Winrunner实验三 测试脚本编程(一)
- STM32F107VCTx I2C通信
- 4K \1080P 高质量视频素材网站。
- 从零到一制作个人网站
- 让ppsx幻灯片进入可编辑状态
- Python九九口诀表
- 用google突破图书馆入口IP限制小技巧
- 【编译原理】分析PL0编译器
- CSS基础班笔记(二)
- mysql中设计suk表_电商项目-商品表(spu)、规格表(sku)设计
- PS-第十二天-PS色阶的使用原理浅谈
热门文章
- textjoin去重_SuperJoinText这个函数,弥补了TEXTJOIN的缺憾
- 机器学习与气象数据_气象大数据与机器学习联合实验室 大数据和气象的“联姻”...
- java 实现 指派_TAP任务指派问题的汇编实现
- python中的while语句怎么居中_python基础之while语句操作
- 紧跟月影大佬的步伐,一起来学习如何写好JS(下)
- [SpringSecurity]web权限方案_用户授权_基于权限访问控制_基于角色访问控制_hasAuthority和hasAnyAuthority_hasRole和hasAnyRole
- 蓝桥杯2015初赛-牌型种数-dfs
- python中开关_pyq中的开关按钮
- qiankun 微前端_qiankun 微前端应用实践与部署(二)
- echarts字变大_在echarts中如何调整lable的字体大小?