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

答案是(n-2)!/(a[1]-1)!/.../(a[n]-1)!,要特判一下不满足的情况和n==1的情况

/**************************************************************
Problem: 1211
User: walfy
Language: Java
Result: Accepted
Time:560 ms
Memory:17892 kb
****************************************************************/ import java.math.BigInteger;
import java.util.*; public class Main { public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int[] a = new int [];
boolean ok = true;
int sum=;
for(int i=;i<n;i++)
{
a[i]=cin.nextInt();
if(a[i] == )ok=false;
sum += a[i];
}
if(n==)
{
if(a[]==)System.out.println();
else System.out.println();
return ;
}
if(ok == false||sum != *n-)
{
System.out.println();
return ;
}
BigInteger [] b = new BigInteger [];
b[] = BigInteger.ONE;
for(int i=;i<;i++)
{
b[i]=b[i-].multiply(BigInteger.valueOf(i));
}
BigInteger ans = b[n-];
for(int i=;i<n;i++)
{
ans=ans.divide(b[a[i]-]);
}
System.out.println(ans);
}
}

最新文章

  1. 【图像处理】【SEED-VPM】5.uImage的烧写 &amp; NFS烧写文件系统
  2. Qt多重继承时的信号与槽
  3. 我的Android第三章:Android的组件介绍
  4. java8 中的时间和数据的变化
  5. 10.Android之ProgressDialog进度对话框学习
  6. Struts2配置文件模板
  7. HDU 5151 Sit sit sit 区间dp
  8. 小小的封装了一个pie的echarts
  9. sql语句中like的使用
  10. WinDriver的一些
  11. ASP.NET 应用程序生命周期
  12. BFS和DFS详解
  13. YDKJS:作用域与闭包
  14. gulp+tp5配置
  15. wf 2017A
  16. ionic3/4 使用NavController 返回两层的方式
  17. Control group namespaces
  18. 【QT】error: &#39;SIGNAL&#39; was not declared in this scope
  19. 【转】C#中base关键字的几种用法
  20. Python 解析 XML 文件生成 HTML

热门文章

  1. instanceof 用于确定一个 PHP 变量是否属于某一类 class 的实例 , 返回true或者false
  2. MacBook鼠标指针乱窜/不受控制问题的解决方法
  3. ubuntu16.04下安装opencv-nonfree
  4. c# 读取confgi文件
  5. backend community-driven web framework
  6. 基于Nginx+FastDFS搭建图片文件系统
  7. Buy Tickets---poj2828(线段树)
  8. iptables综述
  9. uchome四大常用入口文件
  10. sql server 碎片整理——DBCC SHOWCONTIG