树形DP
Fb_by
这个作者很懒,什么都没留下…
展开
-
BestCoder Round #76 (div.2)
链接:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=679题意:有n个球,从盒子中挑两个球出来。先均匀随机地从盒子中挑出一个球,记为A。不把A放回盒子,然后再从盒子中均匀随机地挑出一个球,记为B。求出A上的数字严格大于B上的数字的概率是。分析:记录没个数的个数,暴力枚举A,B,算出情况数,最后除以n*(n-1).原创 2016-03-20 17:04:20 · 225 阅读 · 0 评论 -
UVA 10859【树形dp】
题意:给你一个n个点m条边的无向无环图,每个节点都可以放灯。每盏灯将照亮以它为一个端点的所有边。在所有边都被照亮的前提下,求灯的总数最小数,被两盏灯同时被照亮的边数应该尽量大的灯数。分析:将问题转换成灯的总数(a)最小,被一盏灯照亮的边数(b)应该尽量小。将这两个取小值合并成一个问题,引入一个大值M,x=a*M+b,这时x最小时,a=x/M最小,且b=x%M最小。这时只要求最小的x原创 2016-03-24 18:21:55 · 307 阅读 · 0 评论 -
codeforces 645 D Robot Rapping Results Report 【树形dp】
链接:http://codeforces.com/problemset/problem/645/D题意:给你n个人,和m条关系(有传递性),输入a b代表a比b的等级大,问你最少用到前多少条关系可以确定唯一的关系顺序。不能输出-1。分析:题意说了不会有两个在同一等级,所以不存在环,且入度为零的点不唯一输出-1。由于不存在环,所以我们可以在图中找到最长链(一定唯一,包含所有节点),在找最长链原创 2016-04-08 21:23:16 · 457 阅读 · 0 评论 -
Codeforces Round #343 (Div. 2)
链接:http://codeforces.com/contest/629A. Far Relative’s Birthday Cake题意:计算每行每列中的c有多少对。分析:n*(n-1)/2.。。代码:#include#include#include#include#include#include#include#include#include#includ原创 2016-03-17 20:09:40 · 275 阅读 · 0 评论 -
hdu1054 【树形dp】【二分匹配】
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1054题意:给你一棵树,一个点;可以覆盖所有相邻的边,问这样的点最少多少个。树形dp:dp[i][0]表示当前点是覆盖点且子节点均被覆盖 dp[i][1]表示当前点不是覆盖点且子节点及子节点全被覆盖。dp[i][0] += sum(min(dp[j][0], dp[j][1]));原创 2016-05-14 21:28:23 · 314 阅读 · 0 评论 -
hdu1520 Anniversary party 【树形dp】
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520题意:给你一棵树,每个点都有权值,现在要你选一些点,这些点与父亲不能同时选,问权值最大多少。分析:树形dp入门题,直接用dp[i][0/1]表示第i个节点选或不选,转移:dp[u][0]+=max(dp[v][0],dp[v][1])dp[u][1]+=dp[v][0]代码:#原创 2016-07-26 21:04:54 · 176 阅读 · 0 评论 -
hdu2196 Computer 【树形dp】
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196题意:有n台电脑,通过n-1条网线连接,问每台电脑到离他最远的距离是多少。分析:我们把这些电脑看成一棵树,可以很容易的得到每个点的子树最远的距离(a),我们发现某个节点的答案就是max(a,除下它所在子树后父亲最远的距离)。所以我们可以先dfs一遍存下每个点(u)的子树离他最远和次远距离,原创 2016-07-27 12:38:24 · 215 阅读 · 0 评论 -
cf 135div2D Choosing Capital for Treeland 【树形dp】
链接:http://codeforces.com/problemset/problem/219/D题意:n个点,m个有向边,现在要你求出每个点作为根使得图为一棵树需要改变多少边的方向,输出最少改变多少次,和这些点。分析:建图时发现,一个点为根时他的出度边不用改变,所以将所有的入边的权值为1,然后用dfs统计每个点的子树有多少这样的边。我们还可以发现,一个点(u)和他的父亲(fa)的关系原创 2016-07-27 14:20:52 · 207 阅读 · 0 评论 -
poj1155 TELE 【树形dp】
链接:http://poj.org/problem?id=1155题意:以1为根的树,叶子节点上有权值,从1出发到叶子节点会得到叶子的权值,但是要减去路径上的权值,问你最多到达多少叶子使得最后的值大于等于0.分析:i点为根时用到的叶子节点j的价值用dp[i][j]表示,向上更新的时候就相当于将子树合并。dp[u][j+k]=max(dp[u][j]+dp[v][k]-w).代码:原创 2016-07-27 17:15:56 · 252 阅读 · 0 评论