bzoj 1211: [HNOI2004]树的计数

时间:2023-03-09 20:53:38
bzoj 1211: [HNOI2004]树的计数

prufer的应用。。

详细见这篇博客:https://www.cnblogs.com/dirge/p/5503289.html

 import java.math.BigInteger;
import java.util.*;
public class Main {
static long n, h;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
BigInteger f[] = new BigInteger[151];
f[0] = BigInteger.ONE; int sum = 0;
for(int i = 1; i <= 150; i++) {
f[i] = f[i - 1].multiply(BigInteger.valueOf(i));
} int n = in.nextInt(); if(n == 1) {
int x = in.nextInt();
if(x == 0) System.out.println("1");
else System.out.println("0");
} else {
BigInteger ans = f[n - 2];
boolean flag = true;
for(int i = 1; i <= n; i++) {
int x = in.nextInt();
sum += x;
if(x == 0 || x > 150) {
flag = false;
}
else {
ans = ans.divide(f[x - 1]);
}
}
if(flag && sum == (n - 1) * 2) System.out.println(ans);
else System.out.println("0");
}
in.close();
}
}