E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
dp--树形dp
【BZOJ】2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛(
树形dp
)
id=2060 裸的
树形dp
d[x][1]表示访问x的数量,d[x][0]表示不访问x的数量 d[x][1]=sum{d[y][0]}, y是儿子 d[x][0]=sum{max(d[y][1
·
2015-11-13 11:47
USACO
HDU 4313 Matrix
树形dp
思路:
树形dp
每一个点有2个状态,成为黑点或白点。 若本身这个点就是黑点那么仅仅有黑点一种状态。 否则能够觉得是子树中某个黑点转移上来。
·
2015-11-13 11:29
Matrix
hdu4756 Install Air Conditioning(MST +
树形DP
)
先求mst,然后枚举边,对于生成树上的边替换,用
树形dp
O(N^2)求出每条生成树边的最小替代边。然后替换后的最大值。
·
2015-11-13 10:33
Condition
poj2486(
树形dp
)
http://poj.org/problem?id=2486 题意:一颗树,n个点(1-n),n-1条边,每个点上有一个权值,求从1出发,走V步,最多能遍历到的权值 1 #include <iostream> 2 #include <cstring> 3 #include <vector> 4 #include <cstdio>
·
2015-11-13 10:41
poj
hdu1561(
树形dp
)
http://acm.hdu.edu.cn/showproblem.php?pid=1561 1 #include <iostream> 2 #include <vector> 3 #include <cstring> 4 #include <cstdio> 5 using namespace std; 6 const in
·
2015-11-13 10:38
HDU
LA 3516 - Exploring Pyramids
option=com_onlinejudge&Itemid=8&page=show_problem&problem=1517 久违的
树形dp
dp[l][r] 表示在l到r之间字符串形成的子树有多少种
·
2015-11-13 10:58
exp
hdu 4714 Tree2cycle dp
用
树形dp
做的,dp[t][i]表示t及其孩子入度都已经小于等于2并且t这个节点的入度等于i的最优解。 那么转移什么的自己想想就能明白了。
·
2015-11-13 09:16
tree
1362. Classmates 2
space=1&num=1362 水题,
树形DP
代码: #include<iostream> #include<stack> #include<cstdio
·
2015-11-13 09:03
Class
hdu4714(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4714 题意:给你一棵树,,其中每去掉一条边或加一条边的代价均为1,让你求出将其变成一个圆的最小代价。 分析:由于该树要形成一个圆,所以对于分支大于等于2的子树,必须把它断开形成一条链,最后再连接起来。 定义N为1000010时不断超时,定义N为2000010时却1357ms,hd
·
2015-11-13 07:03
HDU
hdu2412(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2412 题意:给定一棵关系树 , 从中选择一些点 , 使这些点均不存在亲子关系 , 最多能取多少个点 , 并且判断取法是否唯一 . 分析:如果这题没有判断唯一性,就和hdu1520一样了。设&n
·
2015-11-13 07:01
HDU
hdu4679(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4679 题意:给一棵树,每条边上都有一个权值,去掉树上任意一条边之后,分成两个子树,两个子树的最长路与这条边上的权值相乘的到一个乘积。问去掉那一条边可以使这个乘积最小。 分析:求出树的直径,然后判断边是否树的直径上,如果是的话,ans=w*mx_len(mx_len为树的直径),否则
·
2015-11-13 07:00
HDU
hdu4705(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4705 题意: 有一颗树, 选出3个点。 不在同一条路径上的集合数。 分析:这题主要能逆向思考下,用总的方案数减去A,B,C三点在同一路径上的方案数,就简单了。我们可以确定中间点B,在当前以B为根求得的son中任选一个,在剩下的节点n-tmp-1(tmp为已经求得的B的儿子
·
2015-11-13 07:00
HDU
hdu4003(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4003 题意:给定一棵n个节点的树,遍历每条数边都需要费用cost,现在给定k个机器人,要求用这个k个机器人遍历整棵树,使得经过的费用和最小,n<=10000. 分析:dp[u][j]表示有j个机器人不回来的最小值,dp[u][0]表示有一个机器人回来的最小值,即没有一个机器停
·
2015-11-13 07:58
HDU
hdu3899(
树形dp
)
题意:给一树,每个结点有人数,边有权值,表示经过这条边所需时间, 问取某个结点作为开会地点,所有人全部到达此结点最少所需总时间? 分析:val[u]表示以u为根节点的总人数,num[u]表示以u为根节点的总用时,可以先做一次dfs算出树上所有点到根节点(1)的花费总和,然后同时计算出num[u],然后就是又一次dfs算出以每个点为根的话费,这里有dp[v]=
·
2015-11-13 07:57
HDU
zoj3201(
树形dp
)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3201 题意:给一棵树, n结点<=1000, 和K <=200, 找这棵树上找大小为k的子树, 使其点权值最大。 分析:dp[u][j]表示以点u为根节点的子树含有j个节点的最大值,dp[u][j]=max(dp[u][
·
2015-11-13 07:56
ZOJ
poj1947(
树形dp
)
题目链接:http://poj.org/problem?id=1947 题意:给n(n<=150)个点的一棵树,求删掉最少边数k使得最后该树只剩下p(1<=p<=n)个节点。(求最小的k) 分析:设dp[u][j]表示以u节点为根的子树保留j个节点删掉最少的边数;则dp[u][j]=min(dp[u][j],dp[u][j-k]+dp[v][k]).初始值dp
·
2015-11-13 07:55
poj
hdu1561(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1561 题意:n座城堡,每个里面都有宝物,要求在你可以攻占m个城堡得到的最多的宝物,但是如果要攻破一个城堡,必须要攻破它依赖的那个城堡,例如,如果a依赖b,那么如果想要攻破a就必须先攻破b。 分析:首先根据依赖关系构建出一棵以0为根节点的树,那么按从上往下的顺序攻取,除了0节点外,在
·
2015-11-13 07:54
HDU
poj1935(
树形dp
)
题目链接:http://poj.org/problem?id=1935 题意:带边权的树,给点一个根,问从根出发遍历某些点,所需的最小花费。 分析:树上任意两点的路径是唯一的,直接dfs一遍,可以得出从源点出发访问完需要到达的点再回到源点的总值sum,而这里访问后不需要回到源点,找出距离源点最远的点的长度mx,那么答案就是sum-mx。 #include <cs
·
2015-11-13 07:53
poj
ZOJ3626(
树形dp
)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4772 题意:给一棵有n个结点的树,每个点有点权表示在这个点上的价值,每条边有边权表示走这条路所需要的时间,给一个时间m,问在时间m从点k出发再回到点k所能得到的最大的价值和。 分析:因为走完后还要求回到源点k,这题状态转移比poj2486简单了许多
·
2015-11-13 07:53
ZOJ
poj2486(
树形dp
)
分析:非常不错的
树形dp
。dp[u][j][0]表示从当前点u出发,走了j步再回到u点的最大值;dp[u][j][1]表示从当前点u出发走了j步,不回到u点的最大值。
·
2015-11-13 07:52
poj
ural1018(
树形dp
)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662 题意:给一棵边有权值的二叉树,节点编号为1~n,1是根节点。求砍掉一些边,只保留q条边,这q条边构成的子树的根节点要求是1,求这颗子树的最大权值。 分析:1.dp[u][i]表示已以u为根节点的子树,保留了i个节点的最大权值。每条边的权值
·
2015-11-13 07:51
dp
hdu1011(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1011 题意:有n个洞组成一棵树,你有m个士兵,你从1号房间开始攻打,每个洞有a个"bugs"和b的价值。你的一个士兵可以打20个"bugs",为了拿到这个洞的价值b你必须留下k个士兵消灭这个洞的所有"bugs"(k*20&g
·
2015-11-13 07:50
HDU
poj1655(
树形dp
)
题目链接:http://poj.org/problem?id=1655 题目大意:给一个树,删除其中一个点就会形成一个森林,点的平衡度为删除了这个节点后,所形成多个树,其中组成树的节点最多,节点个数就是那个平衡度。 分析:本题实际求树的重心。树的重心定义为删掉这个节点之后将树分成几部分使得这几部分中点个数的最大值最小。num[i]表示以i点为根节点所含有的节点数。删掉某点后,由
·
2015-11-13 07:49
poj
poj1463(
树形dp
)
题目链接:http://poj.org/problem?id=1463 题意:有N个点,每两个点至多只有一条边,如果在一个结点上放一个士兵,那他能看守与之相连的边,问最少放多少个兵,才能把所有的边能看守住。 分析: 1、dp[i][0],表示在结点 i 没放置士兵的情况下,看住以结点 i 为根的子树的所有边所需的最少士兵; 2、dp[i][1],表示
·
2015-11-13 07:48
poj
poj1155(
树形dp
)
题目链接:http://poj.org/problem?id=1155 题意:电视台要直播一场比赛,电视网络刚好形成了一棵树,其中有M个为客户端,其他的为中转站,其中中转站与中转站以及中转站与客户端之间连接都需要一定费用,每个客户i愿意支付pay[i]元钱,问电视台在不亏损的情况下,最多可以让多少个客户观看比赛。 分析:每个客户要么选要么不选,和01背包差不多,只不过这是在树上
·
2015-11-13 07:48
poj
hdu2196(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2196 题意:一个有N个结点的树,给你相邻两个结点的距离,问你对于第i个结点,树中离i最远的结点的距离是多少。 分析:因为树上任意某个节点到树上任意节点的最远距离的端点一定会是树上直径的两个端点之一。(树的直径为树上距离最大的两个点组成)。因此由任意选个点根据最大值dfs求出树的直径
·
2015-11-13 07:47
HDU
hdu1520(
树形dp
)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意:举办一个party,候选人当中有很多人之间有上下级关系,求没有直接上下级的最多的人数。 分析:dp[i][0]表示以点i为根节点的整棵树不取根节点i得到的最大值,dp[i][1]表示以点i为根节点的整棵树取根节点i得到的最大值。 易得到:dp[u][0]+=max(d
·
2015-11-13 07:46
HDU
URAL 1018 (金典
树形DP
)
连接: 1018. Binary Apple Tree Time limit: 1.0 second Memory limit: 64 MB Let's imagine how apple tree looks in binary computer world. You're right, it looks just like a binary tree, i.e.
·
2015-11-13 07:47
dp
SPOJ 1435 Vertex Cover
树形DP
i 表示节点 i ,j=0表示不选择其父节点,j=1表示选择其父节点。f 为其父节点。 取 每个节点选择/不选择 两者中较小的那个。 一组数据: 151 21 31 41 1010 910 1112 1012 1410 1313 154 55 74 66 8 答案是6 1 #include <cstdio> 2 #include <cstring> 3
·
2015-11-13 07:38
over
HDU-4661 Message Passing
树形DP
,排列组合
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4661 题意:有n个人呈树状结构,每个人知道一个独特的消息。每次可以让一个人将他所知的所有消息告诉和他相邻的人。求所有人都知道所有消息花时花的步数最少的所有方案数。 首先需要满足的是最小的步数,所以我们一定是先把所有消息先传到一个人手中才是最优的,然后再从这个人传回去,也
·
2015-11-13 06:43
message
POJ 1848
题解:
树形dp
:dp[now][0]为以now为根的子树完成题目要求添加的最少边。 dp[now][1]为除开now这个结点后它的子树满足题目要求所需要的最少边。
·
2015-11-13 06:33
poj
POJ 1155
题意:给定一棵树,树的边带负权,树的叶子带正权,求一棵子树,要求涵盖尽可能多的叶子,同时保证总权值不为负 题解:
树形DP
,dp[i][j]代表以i为根的子树含有j个叶子结点时最大权值,对每一个i的子树
·
2015-11-13 06:22
poj
POJ 1192
就是给一个无向树,求最大权子树 题解:
树形dp
,dp[i][0]代表不要第i个点时以i为根的子树的最大价值,dp[i][1]代表必须要i时以i为根的子树的最大值。
·
2015-11-13 06:13
poj
HDOJ 4276
先将1到n的路径上的点进行缩点,总时间减去该路径长度,然后这道题就和ZOJ 3626一模一样了,也就是,
树形DP
。。
·
2015-11-13 06:01
OJ
UVa 1292 - Strategic game
有两种做法:一种是经典二分图最小顶点覆盖,一种是
树形DP
,我用的后者。
·
2015-11-13 05:20
game
POJ 3345
题解:
树形DP
,dp[now][i]为以第now国家为子树的国家团体贿赂了i个国家所需要的最小花费,在建立一个虚拟结点0,让它与所有主国建立一条边。
·
2015-11-13 04:39
poj
ural 1018 Binary Apple Tree(
树形dp
| 经典)
本文出自 http://blog.csdn.net/shuangde800 --------------------------------------------------------------------------------- 题目链接: url-1018 题意
·
2015-11-13 04:55
binary
HDU2412+
树形DP
第一道
树形DP
详细见分析。。
·
2015-11-13 02:53
HDU
HDU 1520 Anniversary party
id=669 最最基础的
树形dp
,父子兄弟结构太爽了,学自hh博客 View Code #include <iostream> using namespace std ;
·
2015-11-13 02:02
part
poj 2486
树形dp
思路:这题是裸的
树形dp
。dp[i][j]表示第i个节点花费j步并且从子节点返回,能得到的最大苹果数;nback[i[j]表示第i个节点花费j步并且进入某个子节点不返回,能得到的最大苹果数。
·
2015-11-13 02:59
poj
poj 1848
树形dp
思路:表示我很弱,这个想不出dp方程,参考网上代码 #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<algorithm> #include<vector> #define inf 1<&l
·
2015-11-13 02:58
poj
hdu 4267
树形DP
那么对剩下的图就可以直接
树形dp
求解了。
·
2015-11-13 02:55
HDU
hdu 2412
树形DP
思路:对于最大的人数很容易想到,就直接dp。但对于最大值是否唯一就需要应用辅助数组,isOnly[i][0]表示dp[i][0]是否唯一,同理isOnly[i][1]。 那么当(dp[v][0]>dp[v][1]&&isOnly[v][0]==0)或(dp[v][1]>dp[v][0]&&isOnly[v][1]==0)或(dp[v][1]==dp[v
·
2015-11-13 02:55
HDU
hdu 2196
树形dp
思路:先求以1为根时,每个节点到子节点的最大长度。然后再次从1进入进行更新。 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector> #define Maxn 20010 #define inf 0
·
2015-11-13 02:54
HDU
hdu 4008
树形dp
思路:我们定义一个dfn[i],Maxndfn[i]来确定节点i的访问次序,以及其子节点的最大访问次序。那么另一个节点是其子树的节点当且仅当dfn[j]>=dfn[i]&&dfn[j]<=Maxdfn[i]; 这是就可以先以1为根,dfs找出所有节点最小儿子,次小儿子,以及最小子孙,次小子孙。 剩下就可以分情况: 对于x,y: 1.若与y相连的边数为1,那么一定
·
2015-11-13 02:48
HDU
poj 2057
树形dp
贪心
思路:设sum[i],le[i],back[i],worm[i]分别表示以i为根节点需要的完成步数,叶子节点数,失败回退步数,以及i是否有虫。 #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> #define Maxn 1010 using
·
2015-11-13 02:47
poj
poj 3140 Contestants Division(
树形dp
? dfs计数+枚举)
本文出自 http://blog.csdn.net/shuangde800 -------------------------------------------------------------------------------------- 题目链接: poj-3140 题目 &n
·
2015-11-13 02:07
visio
hdu 3586 Information Disturbing(
树形dp
+ 二分)
本文出自 http://blog.csdn.net/shuangde800 题目链接: hdu-3586 题意 给一棵n个节点的树,节点编号为1~n,根节点为1。每条边有权值,砍掉一条边要花费cost(w) 要砍掉一
·
2015-11-13 02:50
format
hdu 4679 (
树形DP
)
题意:给一棵树,边的权值都是1,摧毁每条边是有代价的,选择摧毁一条边,把一棵树分成两部分,求出两部分中距离最大的两点的距离,求出距离*代价最小的边,多条的话输出序号最小的。 刚开始理解错题意了,wrong了几次,一直在纠结摧毁一条边后上边的树的最远距离怎么求,儿子树的最远距离就是所有子树的最长边+次长边就可以了。当我们求到一个节点u时,肯定有一个祖先节点,该祖先节点在摧毁与u链接的边后剩余的子树
·
2015-11-13 02:12
HDU
[NOI2002 贪吃的九头龙]
[关键字]:
树形DP
[题目大意]:N个节点的一棵树被M个脑袋吃,每个脑袋至少吃一个。最大的头必须恰好吃K个且必须包括1号节点。
·
2015-11-13 02:04
上一页
38
39
40
41
42
43
44
45
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他