Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 2987  Solved: 1111
[Submit][Status][Discuss]

Description

一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵。给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di的树的个数。

Input

第一行是一个正整数n,表示树有n个结点。第二行有n个数,第i个数表示di,即树的第i个结点的度数。其中1<=n<=150,输入数据保证满足条件的树不超过10^17个。

Output

输出满足条件的树有多少棵。

Sample Input

4
2 1 2 1

Sample Output

2

HINT

 

Source

答案为

上面是整棵树的排列方案

下面是每个点重复的方案

一边除乘一边除

// luogu-judger-enable-o2
#include<cstdio>
#define int long long
using namespace std;
const int MAXN = ;
inline int read() {
char c = getchar(); int x = , f = ;
while(c < '' || c > '') { if(c == '-')f = -; c = getchar(); }
while(c >= '' && c <= '') x = x * + c - '', c = getchar();
return x * f;
}
int inder[MAXN], N, sum = ;
int js[MAXN];
main() {
#ifdef WIN32
freopen("a.in", "r", stdin);
#endif
N = read();
js[] = js[] = ;
for(int i = ; i <= ; i++) js[i] = js[i-] * i;
for(int i = ; i <= N; i++) {
inder[i] = read(); sum += inder[i] - ;
if(inder[i] == && N != ) {printf("");return ;}
}
if(sum != N - ) {printf("");return ;}
int Now = , times = ;
for(int i = ; i <= N - ; i++) {
Now *= i;
if(times > N) break;
if(Now % js[ inder[times] - ] == ) Now /= js[ inder[times] - ], times++;
}
printf("%lld",Now);
return ;
}

最新文章

  1. VirtualBox Ubuntu Server 16.04 手动设置 网络(IP, DNS, 路由)
  2. 【URAL 1018】Binary Apple Tree
  3. div自定义的滚动条 (竖直导航条)
  4. SqlSever基础 except 差集 前一个结果中不含有后一个结果的元素
  5. 代码SketchPaintCode绘制
  6. 【django】request
  7. Jquery库及其他库之间的$命名冲突解决办法
  8. Linux进程通信——管道
  9. void 0 === undefined
  10. SpringMVC(七):@RequestMapping下使用POJO对象绑定请求参数值
  11. 咸鱼入门到放弃4——Http协议
  12. TCP/IP 通信
  13. MapReduce核心 - - - Shuffle
  14. js中,for循环里面放ajax,ajax访问不到变量以及每次循环获取不到数据问题总结
  15. ajax模拟获取json
  16. tomcat远程部署war包,显示连接被重置
  17. Codeforces Round #367 (Div. 2) D. Vasiliy&#39;s Multiset(01字典树求最大异或值)
  18. hdu2588-GCD-(欧拉函数+分解因子)
  19. Hadoop的本地库(Native Libraries)介绍
  20. 027 Spark的优化总结

热门文章

  1. 【转载】Java 反射详解
  2. MySQL常用增删改查等操作语句
  3. PAT_A1119 Pre- and Post-order Traversals
  4. 【剑指Offer】52、正则表达式匹配
  5. Lua的热更新学习笔记_01
  6. 分治FFT模板
  7. Java 动态实现word导出功能
  8. 59.bouncing results
  9. CentOS7安装Kubernetes
  10. H5-video1 iOS苹果和微信中音频和视频实现自动播放的方法