传送门

组合数学妙题。


我们把这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;
}

最新文章

  1. webScoket的浅短的认识
  2. express再学习
  3. (单选后,显示相对应的div)点击免费没有变化,点击收费出现输入框
  4. Python进阶01 词典
  5. sql两个表联合更新
  6. Central Europe Regional Contest 2012 Problem H: Darts
  7. JVM Input Arguments Lookup (JMX)(转)
  8. 8.2.1 UML, 组合和聚合、关联和依赖
  9. [知了堂学习笔记]_牵线Eclipse和Tomcat第一篇 —— 配置Java环境变量&amp;&amp;安装eclipse
  10. Android 注解框架对比
  11. mysql批量插入简单测试数据
  12. PHP on CentOS (LAMP) and wordpress
  13. tensorflow学习之(一)预测一条直线y = 0.1x + 0.3
  14. Delphi通过IE窗口句柄获取网页接口(IWebBrowser2)
  15. 进程实时监控pidstat命令详解
  16. centos 7 禁止root登录及更改ssh端口号
  17. 搜索引擎ElasticSearchV5.4.2系列一之ES介绍
  18. Spring MVC异常处理详解 ExceptionHandler good
  19. ASP.NET Web Pages:页面布局
  20. Jmeter响应数据为乱码的处理

热门文章

  1. jdbc java远程连接mysql数据库服务器
  2. latex安装及基本使用
  3. 从零开始写bootloader(2)
  4. 网络编程Socket知识点回复
  5. Jquery的Ajax中contentType和dataType的区别
  6. ApplicationContextAware的使用
  7. jenkins如何获取text parameter多行的文本内容
  8. .NET通用工具——正则表达式
  9. Mysql数据备份与还原
  10. Js 怎么遍历json对象所有key及根据动态key获取值(根据key值获取相应的value值)