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 2152: 聪聪可可(点分治/
树形DP
)
题目在这里题解这题有两种作法,一开始我想的是点分治,类似于POJ1741那题(点这里),我们按同样的方法搜索dep并记录,不过这次记录的是dep%3=0,1,2的数量,记作t[i]。那么根据乘法原理,ans1=t[1]∗t[2]∗2+t[0]∗t[0],然后再算出儿子的ans2,并减去即可。求出满足要求的有序点对数后,概率即可求。由于每一层里不用排序,只用搜一遍,这种方法的时间复杂度是O(nlog
AbEver
·
2017-09-11 16:42
DP
&
记忆化搜索
BZOJ
点分治
DP刷题记录和总结
树形dp
网址有依赖型的树形背包vijos1642传送门这道题是一道典型的有依赖型背包,必须要选了父亲才能选儿子,做这道题有两种方法,一种是O(n×m2)的树上背包合并,还有一种是dfs序的做法,鉴于网上讲
BroDrinkWater
·
2017-09-04 01:06
DP相关
树形DP
初步(1)
今天的标题终于正常些,大家有没有发现(所有文字格式都用到了,嘿嘿嘿)本人实在太咸,前几天翻刘汝佳大神的紫书时发现自己不会
树形DP
于是恶补了一番,这都是由于我太咸没进学校的第一梯队(运气不好,考试当天运势差
bluewzl
·
2017-09-02 19:47
树形DP
17AHU排位赛2 E题(树上最大匹配,
树形DP
)
problem有一个n个节点n-1条边组成的树。每个点看成一个人,连接u和v的边看成是“中意关系”,即u和v两个人都想和对方组队。每个人希望组队的对象有可能有多个。一支队伍由且仅由两个人组成,并且如果u和v组队了,那么u、v将不能和其他人再组成一支队。现在问你,这n个人最多能组成多少支队伍。(允许某些人组不了队)Input第一行输入一个整数n,m(1usingnamespacestd;consti
Feynman1999
·
2017-08-25 11:12
---------
解
题
报
告
---------
Tree
DP
[题解] P2014 选课(
树形DP
+拓扑)
题意:现在有n门功课,每门课有一定的价值,但是课程可能需要一门先修课,问选m门课程能获得的最大价值。分析:刚刚开始我以为这道题可能会出现环的情况(如:HAOI2010软件安装,但是又不会Tarjan,本欲放弃,但是忽然眼角余光瞟到讨论班里有人说这道题没有环…好吧,这样就比较easy了。首先我们要用一个超级根节点将森林连成一棵数,然后可以利用一下拓扑来处理树的所有叶子节点,一层一层往上推进,直到处理
Chlience
·
2017-08-23 11:01
【动态规划】Tree
【动态规划】
【HAOI2015】T1
树形Dp
题意:一棵树,在里面选出k个黑点,剩下的点是白点,使白点之间两两距离之和和黑点之间两两距离之和的和最大分析:还是图样..一开始想到了点分治,可是树的分治一般处理的是关于树的路径的问题。后来发现这道题的k明显是一种“资源”,又想到用树上的背包来搞,可是没做出,一直在想两两之间的距离怎么转移…:(状态显然,F[i][j]为以i为根的子树,选出j个黑点的最大值,考虑这玩意儿是否能转移如果硬要找到两两之间
Dr_Nobody
·
2017-08-11 08:35
树形Dp
树
【HAOI2015】T1
树形Dp
题意:一棵树,在里面选出k个黑点,剩下的点是白点,使白点之间两两距离之和和黑点之间两两距离之和的和最大分析:还是图样..一开始想到了点分治,可是树的分治一般处理的是关于树的路径的问题。后来发现这道题的k明显是一种“资源”,又想到用树上的背包来搞,可是没做出,一直在想两两之间的距离怎么转移…:(状态显然,F[i][j]为以i为根的子树,选出j个黑点的最大值,考虑这玩意儿是否能转移如果硬要找到两两之间
Dr_Nobody
·
2017-08-11 08:35
树形Dp
树
【JZOJ 5248】【NOIP2017提高A组模拟8.10】花花的聚会
DescriptionSolution这一题很显然可以想到
树形DP
嘛,设fx表示x走到根,最小的代价,对于每个点,能转移过来的,只有在它上面能走到的,那么直接用数据结构记录一下上边的最小值即可,用RMQ
HOWARLI
·
2017-08-10 17:02
E - Strategic Game (HDU - 1054 )(最小顶点覆盖)(匈牙利算法模板)(
树形DP
)
题意:鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他无法找到解决方案,速度不够快,那么他很伤心。现在,他有以下的问题。他必须捍卫一个中世纪的城市,形成了树的道路。他把战士的最低数量的节点上,使他们可以观察所有的边。你能帮助他吗?士兵,鲍勃把一个给定的树,你的程序应该发现的最小数目。输入文件包含多个数据集的文本格式。我们来先了解一下什么是最小顶点覆盖;图G的顶点覆盖是一个顶点集合V,使得G中的每一条边
Draven__
·
2017-08-09 10:56
姗姗杯
算法
【tyvj1520】树的直径(dfs||
树形dp
)
题目:我是超链接题解:题目给了一种dfs的做法,但是有负边权的时候不能用还有一种dp的做法:f[i]g[i]分别表示i点到它的子树中的点距离的最大值和次大值,答案就是max(f[i]+g[i])哎为什么不会加重呢?因为每一条边只遍历一遍,如果是链状则只有f[i]的值没有g[i]的值代码:dfs:#include#defineN50000usingnamespacestd;inttot,nxt[N]
wwyx2001
·
2017-08-08 17:50
dp
搜索(dfs序)
hdu 2242(图的双联通&
树形dp
)
对于一个连通图,如果任意两点至少存在两条点不重复路径,则称这个图为点双连通的(简称双连通);如果任意两点至少存在两条边不重复路径,则称该图为边双连通的。点双连通图的定义等价于任意两条边都同在一个简单环中,而边双连通图的定义等价于任意一条边至少在一个简单环中。对一个无向图,点双连通的极大子图称为点双连通分量(简称双连通分量),边双连通的极大子图称为边双连通分量。删除一条边以后还互相连通的教室就是一个
constbh
·
2017-08-04 17:51
图论
【dp】
树形dp
真好玩,hdu6035多校第一场的 colorful tree
hdu6035贴两个很清真的blogwy_2016bahuia这个故事教导我们写blog要带图两个blog都提到了不包含该颜色的联通块,单个联通块里的计数很容易理解,最后dfs完了,sum还是一通狂减,乍一看很玄学,其实是包含根结点的联通块,现场的时候就卡在这一点上#include#include#include#include#includeusingnamespacestd;typedeflo
伟大的蚊子
·
2017-07-30 11:53
ACM_poor
skills
(2017多校训练第一场)HDU - 6035 Colorful Tree
树形dp
hdu6035
树形dp
代码如下:#includeusingnamespacestd;typedeflonglongintLL;constLLMAX_N=200005;vectorG[MAX_N];LLcol
Nicetomeetu-
·
2017-07-28 17:28
ACM-树形dp
HDU 6035
树形dp
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6035一棵n个结点的树,每个结点都有颜色,定义两点之间的路径长度为路径上出现的不同颜色数目,求树上所有路径的长度和。思路:“真的难”系列。首先这题肯定是算贡献,也就是计算出每种颜色参与了多少条路径,但这样正面考虑并不容易,不妨从反面考虑,计算每种颜色没有参与多少路径,然后拿(路径总数*颜色总数)-
Bahuia
·
2017-07-26 13:55
树形dp
HDU 6035 Colorful Tree [
树形dp
]
题意:给一颗树,定义树上路径u到v的价值为路径上不同颜色的节点的数量,问所有路径的总价值为多少题解:根据题意,所需要求解的价值可以转换为,假设每条路径上包含所有的颜色,也就是n*(n-1)/2*(总颜色个数),然后减去每个颜色对不存在这个颜色的的所有路径的贡献。dfs树上的每一个节点,对于当前节点,我们对每一个子树,用sum数组记录每一个颜色的截断值,于是这个子树的size-父节点颜色的截断值来表
ACTerminate
·
2017-07-25 22:46
HDU
树形dp
New Year Santa Network -
树形dp
、数学、思维
NewYearSantaNetwork题目链接分类:
树形dp
、思维、数学1.题意概述给你由n个节点构成的树,有(n-1)条边,随机选取其中三个节点a、b、c,定义dist=dis(a,b)+dis(b,
寒江雪里独钓着的蓑笠翁
·
2017-07-05 18:25
codeforces
动态规划(DP)
思维
数学
Codeforces
[JZSC2017]【NOIP2017模拟6.25】总结
一眼看T1就是
树形DP
,随便弄两下就可以了。T2诶好像怎么放都没有区别,那公式好像可以直接推耶哎呀好棒啊,要AK?T3大概看了一下,决定先放一放,赶紧开打。
BAJim_H
·
2017-06-25 15:34
总结
总结
[ BZOJ3572 ] [ Hnoi2014 ] [ 虚树 ] [
树形DP
] 世界树
学一发虚树这个
树形DP
是真的烦,都调发烧了……我说真的#include#include#includeusingnamespacestd;constintN=300010;intn,cnt,x,y,tms
LowestJN
·
2017-06-13 20:45
DP
树形DP
虚树
DP--
多重背包--队列优化
问题描述:给出背包大小,给出一些物品,每个物品有一个重量、价值、个数,求能装进背包的最大总价值。我们知道,这样的问题有很多种解法,比如可以用二进制拆分来使每个物品的个数变成原来的log,但是,这样显然还不够,下面我们来讨论利用队列来将多重背包优化到O(n*allv)的复杂度。我们知道,背包问题的转移方程为f[i][j]=max(f[i−1][j],f[i−1][j−w[i]]+p[i])如果将背包
Sdywolf
·
2017-06-12 21:06
-----DP-----
DP优化
01背包
多重背包队列优化
bzoj 1017: [JSOI2008]魔兽地图DotR (
树形DP
+多重背包)
题目描述传送门题目大意:给出一棵树,树中的叶子节点可以直接购买,每个点有价格和数量限制,剩下的节点由他的所有儿子按照一定的数量合成,每个点有一个贡献值,给出M,问在花费不超过m的情况下贡献的最大值。(注意一个点如果用于合成,那么他本身的贡献不会再计算)题解这道题后来新加了一组数据,所有点都是B类装备无需合成,那么实际上就是一个多重背包。特判一下就好了。对于树,应该可以算是一种比较奇怪的树形依赖问题
clover_hxy
·
2017-05-25 17:20
动态规划
HDU 5909 Tree Cutting (点分治+
树形DP
|FWT+
树形DP
)
题解1FWT+
树形DP
f[i][j]表示以i为根异或和为j的连通子树的个数(注意必须是i的子树中)f[x][j^k]=f[x][j^k]+f[x][j]∗f[son][k]这个转移方程的瓶颈在于f[x]
clover_hxy
·
2017-05-25 10:39
动态规划
FFT
Anniversary party HDU - 1520 (
树形DP
)
Thereisgoingtobeapartytocelebratethe80-thAnniversaryoftheUralStateUniversity.TheUniversityhasahierarchicalstructureofemployees.ItmeansthatthesupervisorrelationformsatreerootedattherectorV.E.Tretyakov.
coldfresh
·
2017-05-19 15:32
dp
树
树形DP
qduoj 80 树结构重逢(
树形DP
)
题意:给定一颗包含n个节点的无根树,并且把节点从1-n编号。现在让你求对于每个点,求出所有点到这个点的距离的和(距离当然是最短距离了..)。思路:跟HDU3899一毛一样的思路,注意sum要开longlong。代码:#include#include#include#includeusingnamespacestd;typedeflonglongll;constintmaxn=2e5+5;vecto
cillyb
·
2017-05-16 13:35
Two
树形DP
解法 c++代码
题目等价于:所有边权值和的两倍-树直径上边的权值和解题思路:
树形dp
dp[i][0]:结点i最长枝的长度dp[i][1]:结点i第二长枝的长度对所有结点的dp[i][0]+dp[i][1]求最大代码:#
desirepath
·
2017-05-11 14:30
树形DP
动态规划
c++
数据结构与算法
Two
树形DP
解法 c++代码
题目等价于:所有边权值和的两倍-树直径上边的权值和解题思路:
树形dp
dp[i][0]:结点i最长枝的长度dp[i][1]:结点i第二长枝的长度对所有结点的dp[i][0]+ dp[i][1]求最大代码:
desirepath
·
2017-05-11 14:00
C++
动态规划
树形DP
Anniversary party 简单
树形DP
c++ 代码
#include#include#include#includeusingnamespacestd;#definemaxN6005intN,L,K;intdp[maxN+1][2],father[maxN+1];boolvisited[maxN];voidtreeDp(intindex){if(visited[index])return;visited[index]=true;for(inti=1
desirepath
·
2017-05-10 16:06
数据结构与算法
Anniversary party 简单
树形DP
c++ 代码
#include #include #include #include usingnamespacestd; #definemaxN6005 intN,L,K; intdp[maxN+1][2],father[maxN+1]; boolvisited[maxN]; voidtreeDp(intindex){ if(visited[index])return; visited[index]=tr
desirepath
·
2017-05-10 16:00
C++
动态规划
poj
树形DP
树形DP
树形DP
前言自我感觉挺简单的废话不多说,进入正题定义
树形DP
,顾名思义,就是在树上进行得DP(这不废话吗)特点主要有以下特征:1.该树是一颗无环图2.无后效性满足这些条件一般就可以进行
树形DP
实现子问题通常都是以一颗子树为一个子问题
Compile_error
·
2017-04-23 11:46
算法
UVALive - 5088 Alice and Bob's Trip
树形dp
option=com_onlinejudge&Itemid=8&page=show_problem&problem=3089题意大体是男想要更大的路权,女想要更少的路权,但还要保证路权在LR范围内
树形dp
jerans
·
2017-04-20 23:17
树形dp
集训-打怪兽(
树形DP
)
打怪兽题目描述有一棵N个结点的树,结点编号1至N。第i个结点有s[i]只怪兽。现在你要从第1个结点出发,最多走STEP步(每一步就是走一条边),当你到达一个结点时,你就可以把该结点的怪兽全部打死。现在问题是:在最优策略下,你最多可以打死多少只怪物?注意:可以多次经过同一个结点,但是该结点的怪物被打死后,该结点就没有怪物了。输入格式 1795.in第一行,两个整数:N和STEP。1=0;j--)
Fgaoshihao
·
2017-04-18 00:00
日常水
武大网络赛H题
如果没有这条边我们直接
树形dp
就行了,但是我们可以先把这条边去掉,然后我们可以分两种情况进行
WeYoungg
·
2017-04-12 21:46
DP
图论
2017年省选总结
Day1:第一题:因为最近在学的就是
树形dp
,第一题的树也很明显,状态转移方程式也出来得比较快(我的意思是和自己比),然而,,,想起来简单,写的时候却碰到了很多问题,先是排除非法情况时漏了一些,,然后其实当时并没有想太清楚就开始打代码
LSY_LELOUCH_YUKI
·
2017-04-10 21:46
CQOI2017酱油记(spark)
先说DAY1:打酱油50分T1:
树形DP
,一下过了样例,非常兴奋,只粗略看了一下DP数组就没在管,其实后来有足够的时间对拍,但是抱着侥幸心里觉得T1应该没有大问题,于是果断不管。
Nocownowa
·
2017-04-10 18:27
[BZOJ1123][POI2008]BLO(tarjan求点双+
树形dp
)
题目描述传送门题目大意:给出一个n个点m条边的无向连通图,问去掉每一个点之后存在多少点对不连通。题解tarjan求点双联通分量,对于每一个点双建立一个虚拟的节点,然后将这个点双的所有节点都连接到这个节点上,这样就形成了一棵树的结构容易知道这道题求的应该是去掉每一个点之后形成的联通块的每一个大小,然后利用乘法原理计算一下,所以建出树了之后dp一下就行了代码#include#include#inclu
Clove_unique
·
2017-04-06 15:13
题解
dp
tarjan
bzoj 1123: [POI2008]BLO (tarjan求点双+
树形DP
)
题解tarjan求点双,然后对于点双新建节点,并连接所有点双中的节点,形成一棵树后进行
树形DP
即可。
clover_hxy
·
2017-04-06 14:25
动态规划
tarjan
算法
UVALive 5002/ lightoj 1382 The Queue(
树形DP
)
题意:有n个人,除BOSS外,每个人都有一个上司,现在要排队,每个人都不能排在自己的上司前面,问有几种排法。思路参考大神的吧:首先求出以每个结点为根的子树大小,记为size[u],这个DFS一遍就可以求出来;接下来,dp[u]表示给以u为根的子树size[u]个编号有几种编号方案;然后考虑转移方程:比如一个结点u有3个儿子v1,v2,v3,那么u子树有size[u]个编号,根就属于u,剩下size
cillyb
·
2017-04-03 21:42
DP
组合数学
【bzoj2327】[HNOI2011]勾股定理
即在这个森林中选择不相邻的点,可以
树形DP
解决。但是并不是树,可能有回边。那么暴力枚举回边相连的点选还是不选,然后在这个基础上跑
树形DP
。并不清楚bzoj上跑得最快的那些人是怎么做的。。
KikiDMW
·
2017-03-31 15:03
动态规划
数学相关
树形动规
bzoj 3611 【heoi2014】大工程 虚树+
树形DP
题意:给定一棵n个节点的树,q组询问,每次询问找m个关键点,求m个关键点两两之间距离的和、距离的最大值和最小值n个点的树,对k个关键进行操作(询问)的一眼过去一般都是虚树题因为原树边权是1,所以虚树上两点之间的边权为abs(d[x]-d[y])(d[i]表示节点i在原树的深度)(具体虚树怎么搞请自行百度...)以下的“树”皆表示虚树,树P还真是有点恶心...我们维护四个数组,分别是:size[x]
Eirlys_North
·
2017-03-30 23:44
树型DP
bzoj
虚树
bzoj 4199: [Noi2015]品酒大会 (后缀自动机+DP)
然后在parent树上进行
树形DP
,我们知道在parent树上的每个节点
clover_hxy
·
2017-03-30 07:22
动态规划
后缀自动机
喵哈哈村与哗啦啦村的大战(四)(
树形DP
)
喵哈哈村与哗啦啦村的大战(四)发布时间:2017年3月27日10:10时间限制:1000ms内存限制:128M描述喵哈哈村因为和哗啦啦村争夺稀有的水晶资源,展开了激烈的战斗!喵哈哈村的部落可以视为由n个节点组成,其中有n-1条边连接这n个节点,使得任意两个节点都会有一条路径相连接。每个节点上都有一个点权a[i]。如果说存在一条路径上的权值满足非严格的单调递增或者非严格的单调递减的话,就说这条路径是
Jaihk662
·
2017-03-28 21:56
动态规划
[BZOJ3572][Hnoi2014]世界树(虚树+
树形dp
+二分+lca)
题目描述传送门题解首先建出虚树来,边权即为原树上的距离这题我dp的方法非常蠢f(i)表示从i的父边出去(必须经过i的父亲)到达的关键点的最短路fp(i)表示最短路的点g(i)表示i到i的子树中到达的关键点的最短路gp(i)表示最短路的点然后这两个互相转移一下…dp完了之后枚举虚树上的每一条边(u,v)因为已经知道了从u出去到关键点的最短路和从v出去到关键点的最短路然后就可以计算出这条边上的哪些点归
Clove_unique
·
2017-03-13 21:39
题解
dp
lca
省选
二分
虚树
bzoj 3572: [Hnoi2014]世界树 (虚树+
树形DP
+LCA)
3572:[Hnoi2014]世界树TimeLimit:20SecMemoryLimit:512MBSubmit:1412Solved:784[Submit][Status][Discuss]Description世界树是一棵无比巨大的树,它伸出的枝干构成了整个世界。在这里,生存着各种各样的种族和生灵,他们共同信奉着绝对公正公平的女神艾莉森,在他们的信条里,公平是使世界树能够生生不息、持续运转的根
clover_hxy
·
2017-03-13 13:59
动态规划
LCA
虚树
bzoj 3611: [Heoi2014]大工程 (虚树+
树形DP
)
3611:[Heoi2014]大工程TimeLimit:60SecMemoryLimit:512MBSubmit:1218Solved:530[Submit][Status][Discuss]Description国家有一个大工程,要给一个非常大的交通网络里建一些新的通道。我们这个国家位置非常特殊,可以看成是一个单位边权的树,城市位于顶点上。在2个国家a,b之间建一条新通道需要的代价为树上a,b的
clover_hxy
·
2017-03-12 19:58
动态规划
虚树
[BZOJ3611][Heoi2014]大工程(虚树+
树形dp
)
题目描述传送门题解令size(i)表示i子树里有多少个关键点令sum(i)表示i子树中所有关键点到i的距离和令Max(i)表示i子树中所有关键点到它的最长链,_Max(i)次长链,Min(i)最短链,_Min(i)次短链这些都非常好维护,第二问和第三问也很好计算,用最和次拼一下就行了对于第一问的话,在dp的时候维护一下当前size和sum的乘积就行了将所有的关键点和它们的lca建出一棵虚树,边权为
Clove_unique
·
2017-03-12 12:28
题解
dp
省选
虚树
[BZOJ2286][Sdoi2011]消耗战(虚树+lca+
树形dp
)
题目描述传送门题解裸的dp可以得到20pts令f(i)表示将i点子树中所有关键点割掉的最小代价那么若i为关键点,f(i)=i的父边权;若i不是关键点,f(i)=所有儿子的f之和与i的父边权取min那么对于所有的关键点和它们的lca造出一棵虚树,连的边为树链上所有边的最小值同样的方法dp就行了代码#include#include#include#include#include#includeusin
Clove_unique
·
2017-03-12 12:17
题解
dp
lca
省选
虚树
[BZOJ2286][Sdoi2011]消耗战(虚树+lca+
树形dp
)
题目描述传送门题解裸的dp可以得到20pts令f(i)表示将i点子树中所有关键点割掉的最小代价那么若i为关键点,f(i)=i的父边权;若i不是关键点,f(i)=所有儿子的f之和与i的父边权取min那么对于所有的关键点和它们的lca造出一棵虚树,连的边为树链上所有边的最小值同样的方法dp就行了代码#include#include#include#include#include#includeusin
Clove_unique
·
2017-03-12 12:17
题解
dp
lca
省选
虚树
[BZOJ4316][仙人掌][DP]小C的独立集
注意到图是个仙人掌考虑
树形DP
,如果儿子不是环,那么就
树形DP
,否则就把环提出来,参照1040的做法。
LowestJN
·
2017-03-06 18:42
DP
仙人掌
[BZOJ4316][仙人掌][DP]小C的独立集
注意到图是个仙人掌考虑
树形DP
,如果儿子不是环,那么就
树形DP
,否则就把环提出来,参照1040的做法。
LowestJN
·
2017-03-06 18:42
DP
仙人掌
2014多校联赛总结
年暑期多校联赛已经落下帷幕,下面是关于暑期比赛的一些总结.题型统计:2014Multi-UniversityTrainingContest1--byFZUA:数学(费马小定理)B:网络流(最小K路径覆盖)C:
树形
北岛知寒
·
2017-03-05 17:42
poj 2342 Anniversary party (
树形dp
入门)
题意:某公司,每个人都有一个直接上司(除boss外且不存在环),每个人都有一个活跃值。现要举行一个晚会,参加的人中不能有直接上司存在,问最大活跃值是多少?解题思路:任何一个人的来或不来可以看作一种决策,那么状态就是在某个人来的时候或者不来的时候,以他为根的子树能有的最大活跃总值。分别可以用dp[i][1]和dp[i][0]表示第i个人来和不来。所以可以得到状态转移方程:第i个人来:dp[i][1]
cillyb
·
2017-02-17 14:48
poj
dp
DP
上一页
29
30
31
32
33
34
35
36
下一页
按字母分类:
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
其他