HDU5629:Clarke and tree(DP,Prufer)】的更多相关文章

Description Input Output Sample Input Sample Output Solution 题意:给你$n$个点,还有每个点的度数,问你任选$i(1\leq i \leq n)$个点构成树的方案数. 这种统计生成树的题,很容易想到用$prufer$序列搞. $prufer$序列有一个很重要的性质,一个度数为$d$的点会在$prufer$序列里出现$d-1$次. 那么我们设$f[i][j][k]$表示$DP$完前$i$个点,选了其中的$j$个点,当前$prufer$序…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=562 题意: 求给每个节点的度数允许的最大值,让你求k个节点能组成的不同的生成树个数. 题解: 对于n个节点形成的一颗生成树,有一个与之唯一对应的大小为n-2的prufer数列. 并且一个节点的度数减一为它出现在prufer数列中的次数. 那么我们求生成树的个数可以转化为求prufer数列的可重集排列,而这个可以用dp来做. dp[i][j][k]表示处理到第i个节点,已经用了j个节点,且可重集大小…
首先由一个神奇的序列叫做Purfer序列,他可以表示一棵树,且每个节点出现此时为度数-1(因此总长为n-2). 然后dp,用f[i][j][k]表示用前i个点中的j个点构成了一个长度为k的Purfer序列(当然要符合条件),那么有$f[i][j][k]=f[i-1][j][k]+\sum\limits_{i=0}^{a[i]-1}f[i-1][j-1][k-l]\cdot c(k,l)$,可以类似背包的消掉i(j和k要倒序),然后递推即可. 1 #include<bits/stdc++.h>…
[题目]#6395. 「THUPC2018」城市地铁规划 / City [题意]给定n个点要求构造一棵树,每个点的价值是一个关于点度的k次多项式,系数均为给定的\(a_0,...a_k\),求最大价值.\(n \leq 3000,k \leq 10\). [算法]背包DP+Prufer序 首先每个点度x的价值g(x)可以暴力预处理.将每个点的度-1后,就不再有树形态这个限制了,只要n个点的度加起来是n-2即可,因为此时只要让所有还原后度不为1的点连通,度为1的叶子节点直接分配. 问题转化为n-2…
Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For example, Given n = 3, there are a total of 5 unique BST's. 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3    法I:后序遍历.同Unique Binary Search Trees II,只是现在…
Easy Tree DP? Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1460    Accepted Submission(s): 557 Problem Description A Bear tree is a binary tree with such properties : each node has a value o…
题意: 给你一棵树,n个节点,每条边有长度. 然后有q组询问(u,k),每次问你:从节点u出发,走到某个节点的距离mod k的最大值. 题解: 对于无根树上的dp,一般都是先转成以1为根的有根树,然后分别从上到下和从下到上两遍dp. 另一个技巧是:处理重复走边的情况时,可以让dp值表示达到某种状态的方案数. 表示状态: dp[i][j][k] = max dis 表示从i节点出发,走的距离mod k = j时的方案数 找出答案: 对于每次询问(u,k),答案为:满足dp[u][d][k]>0的最…
Easy Tree DP? Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1487    Accepted Submission(s): 567 Problem Description A Bear tree is a binary tree with such properties : each node has a value o…
Clarke and problem Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5464 Description 克拉克是一名人格分裂患者.某一天,克拉克分裂成了一个学生,在做题. 突然一道难题难到了克拉克,这道题是这样的: 给你nn个数,要求选一些数(可以不选),把它们加起来,使得和恰好是pp的倍数(00也是pp的倍数),求方案数. 对于nn很小的时候,克拉克是能轻…
Adam and Tree 感觉非常巧妙的一题.. 如果对于一个已经建立完成的树, 那么我们可以用dp[ i ]表示染完 i 这棵子树, 并给从fa[ i ] -> i的条边也染色的最少颜色数. mnson[ i ][ 0 ] 和 mnson[ i ][ 1 ]分别表示 i 的儿子的dp值的最大和第二大的值, 那么dp[ i ] = max(mnson[ i ][ 0 ], mnson[ i ][ 1 ] + 1) 根据树链剖分的原理我们知道dp的最大值不超过log(n), 那么每次加入一个新的…