今天早上由於剩下的非許可權題實在是太難了。。
於是學了一下新東西續命。。
直接prufer序列排列組合就好了。。
注意各種0的情況
code:
#include
#include
typedef
long
long ll;
const ll n=155;
ll n;
ll a[n];
ll pri[n];
ll tot;
ll cnt[n];
bool ok[n];//這個是不是
void get_pri()
}}void add (ll x,ll y)
}}ll get (ll x,ll y)
int main()
get(n-2,1);
ll sum=0;
for (ll u=1;u<=n;u++)
sum=sum+a[u];
get(a[u]-1,-1);
}if (sum!=(n-1)*2)
ll ans=1;
for (ll u=1;u<=tot;u++)
for (ll i=1;i<=cnt[u];i++)
ans=ans*pri[u];
printf("%lld\n",ans);
return
0;}
bzoj 1211 HNOI2004 樹的計數
題意 給出每個節點的度數,問有多少棵樹滿足這些度數。題解 pr fer序列 組合數學 pr fer序列是由標號樹產生的唯一數列。生成方法 一棵樹要得到普呂弗序列,方法是逐次去掉樹的頂點,直到剩下兩個頂點。考慮樹t,其頂點為。在第i步,去掉標號最小的葉,並把普呂弗序列的第i項設為這葉的鄰頂點的標號。序...
bzoj1211 HNOI2004 樹的計數
題目傳送門 解法 prufer數列。有這麼三個性質 乙個prufer數列與乙個無根樹一一對應。乙個n個節點的無根樹的prufer數列長度為n 2。乙個點的度數等於他在prufer數列裡面出現的次數 1。第三個性質這樣證明 首先需要了解prufer序列如何構造 看這裡在prufer數列中,如果乙個點出...
bzoj1211 HNOI2004 樹的計數
題目鏈結 乙個有n個結點的樹,設它的結點分別為v1,v2,vn,已知第i個結點vi的度數為di,問滿足這樣的條件的不同的樹有多少棵。給定n,d1,d2,dn,程式設計需要輸出滿足d vi di的樹的個數。prufer序列,明明的煩惱簡化版。bzoj1211 include include inclu...