BZOJ4735 你的生命已如风中残烛(组合数学)
将每个位置上的数都-1,则显然相当于前缀和始终非负。
然后就是完全想不到的了。考虑往里面加一张-1的牌。假设在一个合法排列的最后添上一个-1,那么在该排列的所有循环同构排列中,满足前m个前缀和都非负的排列只有原合法排列,因为如果更换开头的话显然有sm+1-shead-1<=sm+1<0。并且对于每一种循环同构排列,都存在一个满足前m个前缀和都非负的排列,因为只要取最小前缀和的后一个为开头即可,证明类似。这样的排列去掉最后一个数就对应了一个合法排列,而显然这样的排列个数就是循环同构排列的种类数,也即m!。同时每一张-1牌都可能位于末尾,而不管是哪张,对应的合法排列可以看成相同的,所以再除以(m+1-n)。
#include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define N 42 #define P 998244353 char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;} int gcd(int n,int m){return m==0?n:gcd(m,n%m);} int read() {int x=0,f=1;char c=getchar();while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();return x*f; } int n,m,a[N],ans=1; int inv(int a) {int s=1;for (int k=P-2;k;k>>=1,a=1ll*a*a%P) if (k&1) s=1ll*s*a%P;return s; } int main() { #ifndef ONLINE_JUDGEfreopen("bzoj4735.in","r",stdin);freopen("bzoj4735.out","w",stdout);const char LL[]="%I64d\n"; #elseconst char LL[]="%lld\n"; #endifn=read();for (int i=1;i<=n;i++) m+=(a[i]=read())--;for (int i=2;i<=m;i++) ans=1ll*ans*i%P;cout<<1ll*ans*inv(m+1-n)%P;return 0; }
转载于:https://www.cnblogs.com/Gloid/p/9954509.html
BZOJ4735 你的生命已如风中残烛(组合数学)相关推荐
- BZOJ4735:你的生命已如风中残烛(组合数学)
Description 众所周知,萌萌哒六花不擅长数学,所以勇太给了她一些数学问题做练习.但是今天六花酱不想做数学题,于是他们开始打牌. 现在他们手上有m张不同的牌,牌有两种:普通牌和功能牌.功能牌一 ...
- [bzoj4735] 你的生命已如风中残烛
[bzoj4735] 你的生命已如风中残烛 我的生命大概真的如风中残烛了. 什么神仙玩意. 考虑每一个排列,每个数-1 不难发现要求前缀和始终大于等于0. 然后考虑卡特兰数就GG了. 我们考虑在最后再 ...
- [清华集训2016]你的生命已如风中残烛——组合数学
题目链接: [清华集训2016]你的生命已如风中残烛 题目大意:共有$m+1$张牌,其中有$n$张特殊牌,每张特殊牌有一个权值$w_{i}$表示取到这张牌能获得$w_{i}$次再抽牌的机会,保证$\s ...
- [LOJ#2329]「清华集训 2017」我的生命已如风中残烛
[LOJ#2329]「清华集训 2017」我的生命已如风中残烛 试题描述 九条可怜是一个贪玩的女孩子. 这天她在一堵墙钉了 \(n\) 个钉子,第 \(i\) 个钉子的坐标是 \((x_i,y_i)\ ...
- 「题解」清华集训 2016 你的生命已如风中残烛
本文将同步发布于: 洛谷博客: csdn: 博客园: 简书: 题目 题目链接:洛谷 P6672.UOJ 273. 题意简述 给你牌数为 m + 1 m+1 m+1 的牌堆,其中第 m + 1 m+1 ...
- P6672-[清华集训2016]你的生命已如风中残烛【结论】
正题 题目链接:https://www.luogu.com.cn/problem/P6672 题目大意 长度为mmm的序列aaa,有nnn个数字不是000,其他m−nm-nm−n个是000.要求重排后 ...
- uoj#344. 【清华集训2017】我的生命已如风中残烛(计算几何)
题面 传送门 题解 orzxyx 首先我们发现,一个点如果被到达大于一次,那么这个点肯定在一个环上.所以在不考虑环的情况下每个点只会被到达一次,那么我们就可以直接暴力了 简单来说,我们对每个点\(i\ ...
- UOJ#273. 【清华集训2016】你的生命已如风中残烛
问题相当于有和为0的m个数 ai a i a_i,求 i i i有多少种排列使得任意一个前缀和都>=0 先给序列末尾加上一个-1,变成m+1个和为-1的数,要求前m个前缀和>=0 发现对于 ...
- 一句话题解(20170801~20170125)
8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...
最新文章
- 只需3步,随时随地玩转数据分析
- pytorch 语义分割loss_Recall Loss:用于不平衡图像分类和语义分割的召回损失
- PPT 下载 | 神策数据孙文亮:客户全生命周期管理从方法到实践全解析
- Layui / WEB UI
- GIT Windows服务端搭建笔记
- Linux相关配置 集群免密码登录配置
- mysql 5.7 redo replacation_mysql replace
- 美团靠外卖和到店业务赚来的钱
- 连接Oracle9i,因字符集造成乱码的解决方法
- 特征提取之——Haar特征
- 8. wordpress源码解析-目录结构-文件调用关系(1)
- python多级菜单_python练习题:多级菜单(dict练习)
- 鲁班图片压缩实现仿微信九宫格选择图片效果
- 7-6,输入厘米,输出英尺英寸
- signature=16ceadeb007b12c6b3bcab834073ab21,Signature: _____________________ 16 May 2006
- [译] 为什么设计师讨厌政治(如何解决)
- php获取当前日期所在自然周周一周末以及前后自然周始末
- 2021-02-03-ctf-如来十三掌
- wps 根据单元格值 设置单元格所在行 颜色(大于0 行红色 小于0 行xx色)
- 简述计算机在医院药学工作中的应用,[生物医药论文精品a]计算机在药学工作中的应用...