JZOJ4786. 【NOIP2016提高A组模拟9.17】小a的强迫症
Description
Input
Output
Sample Input
3
2 2 1
Sample Output
3
样例解释:
Data Constraint
分析
根据题目,我们可以知道,
如果我们按照颜色1~N的顺序来放,
很显然,每种颜色的最后一个,一定放在当前最后的一个位置。
那么,对于剩下的ai−1a_{i-1} 个就可以随便放了,
它们总共有多少种放法?
这里需要运用到组合数,放球就等同于就原来的球分开,
跟隔板问题相似,但是在每一个隔板上面可以放多个球。
我们假设在分出来的每一组里面有一个虚拟的球,
那么,总球数就会增加ai−1−1a_{i-1}-1 个,
但实际上,这些虚拟的球是不存在的,
所以,如果某一个只有虚拟的球,也就是说两个隔板放在了一起,
在解决了每个隔板会有多个球的问题,
公式:Caisumi−1+ai−1C_{sum_{i-1}+a_i-1}^{a_i}
code(c++)
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string.h>
#include <cmath>
#include <math.h>
#define _ %998244353
#define ll long long
using namespace std;
int n,k;
ll jc[500303],ans,sum;
ll ksm(ll x)
{ll s=x,ans=1;int y=998244351;while(y){if(y%2)ans=ans*s _;s=s*s _;y/=2;}return ans;
}
ll C(int n,int m)
{return((jc[m])*ksm(jc[m-n])_*ksm(jc[n]))_;
}
int main()
{jc[0]=1; for(int i=1;i<=500300;i++)jc[i]=(jc[i-1]*i)_;ans=1;sum=0;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&k);ans=ans*C(k-1,sum+k-1)_;sum+=k;}printf("%lld",ans);
}
JZOJ4786. 【NOIP2016提高A组模拟9.17】小a的强迫症相关推荐
- jzoj4786-[NOIP2016提高A组模拟9.17]小a的强迫症【数论】
正题 题目大意 nnn个颜色第iii个个数为numinum_inumi个,然后要求第iii种颜色的最后一个一定在第i+1i+1i+1种的最后一个前面.求方案总数. 解题思路 首先先定义一个1∼n1\ ...
- [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 ...
最新文章
- NGINX中的proxy_pass和rewrite
- oracle数据库访问order by不起作用分析
- 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image
- C语言和C++语言关系
- 驰骋表单设计器 设计表单案例演示
- CCF 201809-1 买菜
- java 字符串第一个字符_深入Java源码剖析之字符串常量
- python怎么写入到文件中_Python学习笔记之将数据写入到文件中
- c语言’内存清除函数,c语言常用内存处理函数
- ShopXO 开发文档
- 微博转发的内容如何实现点击人名跳转到个人主页
- .inc文件是什么文件?
- 简单的二维数组问题,不用不知道,一用吓一跳
- Matlab 实现信号滤波
- 购买成功订单详情html,订单成功页面功能实现
- tolua++实现分析
- 目标检测xml文件提取
- 根据程序流程图化程序流图_程序流程图如何画?绘图软件有哪些
- 微信小程序开发入门(连载)—— 开发前的准备工作
- win10打开蓝牙_Win10系统中蓝牙鼠标可以配对却无法使用应该如何解决?