2018.10.30 uoj#273. 【清华集训2016】你的生命已如风中残烛(组合数学)
2024-10-19 02:26:43
传送门
组合数学妙题。
我们把这mmm个数都减去111。
然后出牌的地方就变成了−1-1−1。
然后发现求出每个位置的前缀和之后全部都是非负数。
考虑在最后加入一个−1-1−1构成一个m+1m+1m+1个数的序列。
那么对于这个序列的所有循环同构。
只有当前这种是合法的。
原因很简单。
最后一个位置的前缀和是−1-1−1,因此除了当前这种之外的循环同构必定有一个前缀和是负数。
反过来发现对于每一个不合法的,它一定有一个循环同构是合法的。
对于这个序列的总方案数只有m!m!m!种。
然后最后一个数种类是定了的。
因此总方案数:m!m−n+1\frac {m!} {m-n+1}m−n+1m!
代码:
#include<bits/stdc++.h>
using namespace std;
inline int read(){
int ans=0;
char ch=getchar();
while(!isdigit(ch))ch=getchar();
while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
return ans;
}
const int mod=998244353;
int n,ans=1,m=0;
int main(){
n=read();
for(int i=1;i<=n;++i)m+=read();
for(int i=1;i<=m;++i)if(i^(m-n+1))ans=(long long)i*ans%mod;
cout<<ans;
return 0;
}
最新文章
- webScoket的浅短的认识
- express再学习
- (单选后,显示相对应的div)点击免费没有变化,点击收费出现输入框
- Python进阶01 词典
- sql两个表联合更新
- Central Europe Regional Contest 2012 Problem H: Darts
- JVM Input Arguments Lookup (JMX)(转)
- 8.2.1 UML, 组合和聚合、关联和依赖
- [知了堂学习笔记]_牵线Eclipse和Tomcat第一篇 —— 配置Java环境变量&;&;安装eclipse
- Android 注解框架对比
- mysql批量插入简单测试数据
- PHP on CentOS (LAMP) and wordpress
- tensorflow学习之(一)预测一条直线y = 0.1x + 0.3
- Delphi通过IE窗口句柄获取网页接口(IWebBrowser2)
- 进程实时监控pidstat命令详解
- centos 7 禁止root登录及更改ssh端口号
- 搜索引擎ElasticSearchV5.4.2系列一之ES介绍
- Spring MVC异常处理详解 ExceptionHandler good
- ASP.NET Web Pages:页面布局
- Jmeter响应数据为乱码的处理