2回のトレーニングのカウント

https://www.luogu.org/problem/P2290

pruferボードの質問

しかし、それはまた、紫のテーマは、その理由を持っている、見てみているピット

コード:(コードは醜いです、私は書いていない)(私は嘔吐のように感じる参照)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n;
ll d[151];
ll jie[151];
ll sum;
inline ll calc(ll x){
    ll ans=1;
    for(int i=2;i<=x;i++){
        ans*=i;
    }
    return ans;
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%lld",&d[i]);
        sum+=d[i]-1;
        if(d[i]==0&&n!=1){
            printf("0");
            return 0;
        }
        jie[i]=calc(d[i]-1);
    }
    if(sum!=n-2){
        printf("0");
        return 0;
    }
    ll ans=1;
    int j=1;
    for(int i=1;i<=n-2;i++){
        ans*=i;
        if(j>n)continue;
        if(ans%jie[j]==0){
            ans/=jie[j];
            j++;
        }
    }
    printf("%lld",ans);
    return 0;
}

おすすめ

転載: www.cnblogs.com/wzxbeliever/p/11697503.html