標籤: 組合數 prufer序列
題目鏈結
給出一棵樹上某些點的度數(-1 就是不限制度數)
求有多少種不同的樹的個數
要做這道題首先得知道prufer序列。
每乙個這樣的序列都對應著一棵樹。
同時每個點的度數減1 就是prufer序列上這個點的出現次數。
然後用組合數搞一搞就行了。
這題要用高精度。
#include#include#include#include#include#include#include#include#include#includeusing namespace std;
#define ll long long
#define rep(i,a,b) for(int i=(a),_end_=(b);i<=_end_;i++)
#define drep(i,a,b) for(int i=(a),_end_=(b);i>=_end_;i--)
#define erep(i,a) for(int i=start[(a)];i;i=e[i].next)
inline int read()
const int maxn=1e3+20;
int n,a[maxn],sum,num;
int prime[maxn],cnt,mark[maxn];
void prepare() }}
int s[maxn];
void fj(int x,int add)
if(x>1)s[mark[x]]+=add;
}void init()
fj(num,n-2-sum);
}int cj[maxn*10],len=1;
void doing()
len+=4;
rep(l,1,len)
while(!cj[len])len--;
}} }
drep(i,len,1)cout<}int main()
bzoj1005 prufer 明明的煩惱
1005 hnoi2008 明明的煩惱 time limit 1 sec memory limit 162 mb submit 6358 solved 2471 submit status discuss description 自從明明學了樹的結構,就對奇怪的樹產生了興趣 給出標號為1到n的點,以...
bzoj1005 hnoi2008 明明的煩惱
time limit 1 sec memory limit 162 mb submit 3157 solved 1262 submit status discuss 自從明明學了樹的結構,就對奇怪的樹產生了興趣.給出標號為1到n的點,以及某些點最終的度數,允許在任意兩點間連線,可產生多少棵度數滿足要...
BZOJ 1005 HNOI2008 明明的煩惱
給定一棵n個節點的樹的節點的度數,其中一些度數無限制,求可以生成多少種樹。用到了prufer數列的知識。度娘 prufer數列 是由有乙個對於頂點標過號的樹 標號樹 轉化來的數列,點數為n的樹轉化來的prufer數列長度為n 2。由heinz prufer於1918年在證明cayley定理時首次提出...