BZOJ 1211 树的计数(purfer序列)】的更多相关文章

首先考虑无解的情况, 根据purfer序列,当dee[i]=0并且n!=1的时候,必然无解.否则为1. 且sum(dee[i]-1)!=n-2也必然无解. 剩下的使用排列组合即可推出公式.需要注意的是题目虽然说最终答案不会超过1e17,但是中间过程可能超. 由于n<=150, 所以sum最多是148. 于是我们可以打出150*150的组合表.实现O(1)计算组合数. # include <cstdio> # include <cstring> # include <cs…
1211: [HNOI2004]树的计数 Time Limit: 10 Sec  Memory Limit: 162 MB Description 一个有n个结点的树,设它的结点分别为v1, v2, …, vn,已知第i个结点vi的度数为di,问满足这样的条件的不同的树有多少棵.给定n,d1, d2, …, dn,编程需要输出满足d(vi)=di的树的个数. Input 第一行是一个正整数n,表示树有n个结点.第二行有n个数,第i个数表示di,即树的第i个结点的度数.其中1<=n<=150,输…
http://www.lydsy.com/JudgeOnline/problem.php?id=1211 思路:每一个prufer编码都代表了一棵树,而点的度数,代表了它在prufer编码中出现的次数+1,因此,我们就知道每个点在prufer编码中出现的次数,用组合数就可以解决: 最后的式子约一下是: cnt!/(∏(du[i]-1)!) 要分解质因数,不然会爆longlong #include<cstdio> #include<cmath> #include<iostrea…
原文出处:https://www.cnblogs.com/dirge/p/5503289.html 树的计数 + prufer序列与Cayley公式 学习笔记(转载) 首先是 Martrix67 的博文:http://www.matrix67.com/blog/archives/682 然后是morejarphone同学的博文:http://blog.csdn.net/morejarphone/article/details/50677172 因为是偶然翻了他的这篇博文,然后就秒会了. pruf…
首先是 Martrix67 的博文:http://www.matrix67.com/blog/archives/682 然后是morejarphone同学的博文:http://blog.csdn.net/morejarphone/article/details/50677172 因为是偶然翻了他的这篇博文,然后就秒会了. prufer数列,可以用来解一些关于无根树计数的问题. prufer数列是一种无根树的编码表示,对于一棵n个节点带编号的无根树,对应唯一一串长度为n-1的prufer编码. (…
最近碰了$prufer$ 序列和组合数..于是老师留了一道题:P2624 [HNOI2008]明明的烦恼 qwq要用高精... 于是我们有了弱化版:P2290 [HNOI2004]树的计数(考一样的可还行OvO) 首先前置知识:$Prufer序列$ 然后,因为对于一个$ Prufer $序列有$n-2$ 项,而每个点的度数-1是这个点在$ Prufer$ 序列中出现的次数 所以...这不是多重集的排列吗(不懂多重集?) 所以我们成功了一半(雾) 在计算时会爆$ long \space long…
先安利一发.让我秒懂.. 第一次讲这个是在寒假...然而当时秦神太巨了导致我这个蒟蒻自闭+颓废...早就忘了这个东西了... 结果今天老师留的题中有两道这种的:Luogu P4981 P4430 然后决定了解一下... 一.Prufer序列 Prufer序列,可以用来解一些关于无根树计数的问题. Prufer序列是一种无根树的编码表示,对于一棵n个节点带编号的无根树,对应唯一一串长度为n-1的Prufer编码,这性质很好. 1.无根树转化为Prufer序列 首先定义无根树中度数为1的节点是叶子节…
树的计数 bzoj-1211 HNOI-2004 题目大意:题目链接. 注释:略. 想法: prufer序列有一个性质就是一个数在prufer序列中出现的次数等于这个prufer序列生成的树中它的度数-1. 故此我们就是要求$C_{n-2}^{d_1-1}\times C_{n-2-d_1+1}^{d_2-1}\times \cdots \times C_{d_n-1}^{d_n-1}$. 随便搞搞就行了. Code: #include<cstdio> #include<cstring&…
题目大意:给定一棵树中全部点的度数,求有多少种可能的树 Prufer序列.详细參考[HNOI2008]明明的烦恼 直接乘会爆long long,所以先把每一个数分解质因数.把质因数的次数相加相减.然后再乘起来 注意此题无解须要输出0 当n!=1&&d[i]==0时 输出0 当Σ(d[i]-1)!=n-2时输出0 写代码各种脑残--竟然直接算了n-2没用阶乘-- #include<cstdio> #include<cstring> #include<iostre…
[BZOJ1005][HNOI2008]明明的烦恼 Description 自从明明学了树的结构,就对奇怪的树产生了兴趣......给出标号为1到N的点,以及某些点最终的度数,允许在任意两点间连线,可产生多少棵度数满足要求的树? Input 第一行为N(0 < N < = 1000),接下来N行,第i+1行给出第i个节点的度数Di,如果对度数不要求,则输入-1 Output 一个整数,表示不同的满足要求的树的个数,无解输出0 Sample Input 3 1 -1 -1 Sample Outp…