1 /* 2 根据先后关系,可以建立一棵树 3 dp[i][j]表示第i个节点选j个的最大值 4 dp[i][j]=max(sigma(dp[c[i][ki]])) 5 sigma(dp[c[i][ki]])表示从i的儿子节点中一共选取j个点的最大值 6 */ 7 /*#includ...
分类:
其他好文 时间:
2014-12-03 07:04:10
阅读次数:
253
POJ2342Anniversary party(树形dp)
题目连接
题目大意:有一个聚会,现在需要邀请人来参加这个聚会来增加活跃度,但是这N个人中,除了一个人以外,其余的人都有直接的上司,如果他们碰到他们的直接的上司的话,那么他们就会很不愉快。现在要求你让所有的人都愉快的情况下,使得聚会的活跃度,达到最大。
解题思路:之前没有接触过树形dp,看了题解大概明白。题型大概就是N个...
分类:
其他好文 时间:
2014-11-29 17:38:26
阅读次数:
138
多种方法,我用DP做的。
我当成的 最长下降子序列做的。 问了下其他人,有树形DP的,有差分约束用最短路的。
还有当作 二维的背包问题的。
最长单调子序列,长宽高 x,y,z 分别枚举成六个。然后排序,找最长单调子序列即可。
#include
#include
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2014-11-27 10:48:57
阅读次数:
228
题目链接:点击打开链接
题意:
给定n个点的树[0,n)
开始所有边都是无色。
有3种操作:
1、选一个点染其相连的边 花费100
2、选一个点染其相连的2条边 花费175
3、选一个点染其相连的所有边 花费500
问:
染完所有边的最小花费。边可以重复染,点只能被操作一次。
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2014-11-27 00:18:06
阅读次数:
270
Description
After Farmer John realized that Bessie had installed a "tree-shaped" network among his N (1
Bessie, feeling vindictive, decided to sabotage Farmer John's network by cutting power to...
分类:
其他好文 时间:
2014-11-23 17:35:43
阅读次数:
190
题意不多说。
曰:
呃,首先显然这是一个树形DP。
然后我不会什么高大上的算法,我只能提供一种非常慢,但是能在BZ切的算法(因为是总时限并且还有O2)。
题解:
不需要新建树,这个树就行。
首先这道题一眼就能想到树形背包。。但是树形背包怎么做呢?
因为需要合成,所以这里的状态F[i][j][k]并不是i节点有j个花费为k时的最大收益,而是i节点...
分类:
其他好文 时间:
2014-11-22 12:08:48
阅读次数:
215
题意:
给定一棵n(2000)个节点的树 每个节点上有个数字 问 有多少棵子树满足树中最大数字与最小数字的差不超过d
思路:
根据数据猜复杂度可能为n^2 想到尝试树形dp
假如枚举现在树中的最大值 那么最小值可以求出 这时不在数值范围内的节点都可以标记掉
那么假设这个最大值的点我一定选取 那么就可以dp出一定选这个点的情况下子树的种类数
假设u是父节点 v是子节点...
分类:
其他好文 时间:
2014-11-21 21:56:47
阅读次数:
212
题目大意:给定一棵树,令一个点到所有点的距离与点权的乘积之和为b[i],求每个点的权值a[i]
首先如果给定a[i]我们可以很轻松的求出b[i] 但是反过来怎么搞?高斯消元?30W?
考虑已知a[i]求b[i]的情况 令这棵树的根为1 点i到根节点的距离为dis[i] 以i为根的子树的a值之和为size[i] 那么有递推式
b[1]=Σa[i]*dis[i]
b[x]=b[fa[x]]-2...
分类:
其他好文 时间:
2014-11-19 02:01:26
阅读次数:
166
/*树形dp:给一颗树,要求一组节点,节点之间没有父子关系,并且使得所有的节点的权值和最大对于每一个节点,我们有两种状态dp[i][0]表示不选择节点i,以节点i为根的子树所能形成的节点集所能获得的最大权值和 dp[i][1]表示选择节点i ,同上!转移方程:dp[i][0]+=max(dp[i_s...
分类:
其他好文 时间:
2014-11-17 21:07:58
阅读次数:
146
题目大意:带边权的树,给点一个根,问从根出发遍历某些点,所需的最小花费。
这既然是一棵树,那么从起点k到任意一个的路径都是唯一确定的(这就是树形的好处),我们可以深搜它的孩子,在过程中如果没有要访问的节点就直接返回。
否则将这条路径都标记。而且题目中可知不一定要返回到其实位置,那么可以在某个点停下。
sum[0][u]:回到u点的最短路径
sum[1][u]:不回到u点的最短路径
sum...
分类:
其他好文 时间:
2014-11-16 12:09:45
阅读次数:
142