题目链接

题面:

题解:
(n-2)!/ ((d1 - 1)! * (d2 - 1)! * …(dn - 1) !)
但是还要判断是否能成为一棵树。

代码:

def main():
    fac=[0 for i in range(200)]
    fac[0]=1
    for i in range(1,200):
        fac[i]=fac[i-1]*i

    n=int(input())
    b=list(map(int,input().split()))
    if n==1:
        if b[0]==0:
            print(1)
        else :
            print(0)
        return
    
    ans=fac[n-2]
    res=0
    for x in b:
        if x==0:
            print(0)
            return 
        ans=ans//fac[x-1]
        res=res+x
    if res!=2*n-2:
        print(0)
        return 
    print(ans)

main()