51nod-1322: 关于树的函数】的更多相关文章

题目链接:51nod 1412 AVL树的种类 开始做的时候把深度开得过小了结果一直WA,是我天真了.. #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; typedef long long ll; ; ; ll dp[N][];//dp[i][k] i:节点数, k:深度 void solve(){ int i, j, k;…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1412 题意: 思路: 经典dp!!!可惜我想不到!! $dp[i][k]$表示i个结点,最大深度为k的形态数. 它的转移方程就是: dp[i][k] += dp[i - - j][k - ] * dp[j][k - ] dp[i][k] += * dp[i - - j][k - ] * dp[j][k - ] j是右子树结点个数,如果除去根结点,是不是可以分为左右两棵子…
转自----hequn8128 在阅读代码量比较多的项目时,类的继承树和函数调用图能够直观地向我们显示类之间或者函数之间的各种关系,方便我们了解程序的整体框架,很多时候可以起到事半功倍的作用.这里尝试了用doxygen+graphviz生成工程中的类继承树和函数调用图的方法,总体来说操作比较方便.网上还有其他一些方法,比如eclipse插件还有Rational Software Rrchitect,对于eclipse插件,功能比较有限,而Rational Software Rrchitect软件…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1353 今天小a在纸上研究树的形态,众所周知的,有芭蕉树,樟树,函树,平衡树,树套树等等.那么小a今天在研究的就是其中的平衡树啦. 小a认为一棵平衡树的定义为一个n个点,从1到n编号,n-1条边,且任意两点间一定存在唯一一条简单路径,且n>=k. 现在小a看到一棵很大很大的树,足足有n个节点,这里n一定大于等于k!为了方便起见,它想把这个树删去某些边,使得剩下的若干个联通…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 还是模板题. 杜教筛:\[S(n)=\frac{n(n+1)}{2}-\sum_{i=2}^nS\left(\left\lfloor\frac ni\right\rfloor\right)\] 基于质因子分解的筛法:详见2016年论文<积性函数求和的几种方法>(讲得很详细的~~~) 为什么我写的洲哥筛常熟巨大QAQ 杜教筛\(O\left(n^{\frac 23…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1287 简单的线段树题目,直接写个二分查找大于等于x的最小位置就好了. #include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f #define LL long long ; int A[MAX]; struct SegTree { #define M ((L+R)>>1) #de…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1770 这是这次BSG白山极客挑战赛的B题.设p(i, j)表示节点个数为i,高度为j的AVL树的个数. 那么,对于1 <= k <= i-1 p[i][j] += p[k][j-1]*p[i-1-k][j-1]%MOD; p[i][j] += p[k][j-2]*p[i-1-k][j-1]%MOD; p[i][j] += p[k][j-1]*p[i-1-k][j-2]…
Prelude 题目在这里:ο(=•ω<=)ρ⌒☆ Solution 蒟蒻__stdcall的第一道虚树题qaq. 首先很容易发现,这个排列是假的. 我们只需要求出每对点之间的颜色数量,然后求个和,然后再乘以\((n-1)!\)再乘以\(2\)就好啦! 如何求出"每对点之间的颜色数量之和"呢? 似乎点分可以做,并且fc确实写出了点分的做法,但是有更简(ma)单(nong)的虚树做法. 我们对每种颜色分开考虑,对于每种颜色\(c\),我们考虑有多少条路径经过了颜色\(c\),然后再…
第一次写如此复杂的树链剖分, 感觉自己代码能力还是挺不错的,没有调试太久(2个小时) 最后代码量高达11K orz(大部分都是重复的线段树代码,以后可以考虑优化一下代码量) 题解: 首先就是要进行一次树链剖分, 然后线段树维护的内容是比较复杂的,核心是这样的 线段树上的一个结点维护以下信息 v[2][2] 第一维代表deep%2,第二维代表是黑还是白(黑是1),v[0][1]意思就是深度为偶数.黑色结点的答案 这里答案是指的维护所有轻儿子子树的答案 num[2][2] 维度代表和上面一样,维护的…
Discription 有一棵以1为根的树,他有n个结点,用1到n编号.第i号点有一个值vi. 现在可以对树进行如下操作: 步骤1:在树中选一个连通块,这个连通块必须包含1这个结点. 步骤2:然后对这个连通块中所有结点的值加1或者减1. 问最少要经过几次操作才能把树中所有结点都变成0. 注意:步骤1与步骤2合在一起为一次操作. Input 单组测试数据. 第一行有一个整数n(1 ≤ n ≤ 10^5) 接下来n-1行,每行给出 ai 和 bi (1 ≤ ai, bi ≤ n; ai ≠ bi),…