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
牛客-牛牛染颜色
题目传送门sol:
树形dp
,用$dp[u]$表示节点$u$代表的子树合法染色方案的数量,若$u$节点是黑色,则所有儿子随意,产生的方案数为$\proddp[v],v\inson[u]$;若$u$节点是白色
Angel_Demon
·
2020-04-26 11:00
[ZJOI2008] 骑士
题目原题链接解说开局就觉得是并查集,想了半天没思路,在洛谷上一看这是
树形DP
?!这怎么
树形DP
啊?我直接引用得了,反正思路看的大佬的大佬还比自己讲的好……一开始没有看出来就是没有上司的舞会那道题啊。
DarthVictor
·
2020-04-23 10:00
某不知名的
树形Dp
题意给出一个\(N\)个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大分析看到树,还让求最大,这种可能不是贪心就是树形\(DP\),贪心的话树的形状没法判断,果断放弃,那么就只能是\(DP\)了。既然它让求深度之和,那么我就直接定义以\(i\)为根时深度和为\(DP_i\),接下来就是怎么转移的问题了。如果我枚举每个点来考虑,那么还要计算它下边的子树和它上边的子树,显然是不好弄,时
An_Fly
·
2020-04-11 22:00
树形DP
——动态规划与数据结构的结合,在树上做DP
本文始发于个人公众号:TechFlow,原创不易,求个关注今天是算法与数据结构的第15篇,也是动态规划系列的第4篇。之前的几篇文章当中一直在聊背包问题,不知道大家有没有觉得有些腻味了。虽然经典的文章当中背包一共有九讲,但除了竞赛选手,我们能理解到单调优化就已经非常出色了。像是带有依赖的背包问题,和混合背包问题,有些剑走偏锋,所以这里不多做分享。如果大家感兴趣可以自行百度背包九讲查看,今天我们来看一
TechFlow2019
·
2020-04-09 11:00
c++随机生成树
,又想出了一种比较优秀的解法,但不知道这种解法对错与否,我们该怎么办呢答案显然是对拍对于我们之前做过的题,可能对数据的要求并不是那么严格,所以一个rand()%a+b就可以解决问题但是最近,我们学习了
树形
liuchanglc
·
2020-04-08 15:00
FarmCraft --(
树形DP
)
题目描述InavillagecalledByteville,therearehousesconnectedwithN-1roads.Foreachpairofhouses,thereisauniquewaytogetfromonetoanother.Thehousesarenumberedfrom1to.Thehouseno.1belongstothevillageadministratorByt
Lourisy
·
2020-04-07 18:00
【
树形dp
】Farmcraft
题目InavillagecalledByteville,therearehousesconnectedwithN-1roads.Foreachpairofhouses,thereisauniquewaytogetfromonetoanother.Thehousesarenumberedfrom1to.Thehouseno.1belongstothevillageadministratorBytea
Vocanda
·
2020-04-07 17:00
洛谷P3574 [Poi2014]FarmCraft
树形DP
题目描述(英语版)InavillagecalledByteville,therearennhousesconnectedwithn-1n−1roads.Foreachpairofhouses,thereisauniquewaytogetfromonetoanother.Thehousesarenumberedfrom1tonn.Thehouseno.1belongstothevillageadmi
19502-李嘉豪
·
2020-04-06 22:00
POI2014 FAR-FarmCraft
树形DP
+贪心
题目链接https://www.luogu.org/problem/P3574题意翻译其实已经很明确了分析这题一眼就是贪心啊,但贪心的方法要思索一下,首先是考虑先走时间多的子树,但不太现实,因为时间跟点的个数也有关系,而且很有可能另外一棵子树不去走会闲置很长时间,就是这棵子树本来可以走一遍然后在子树装软件的时候去走别的树,所以不能这么贪心。那,要怎么办呢?对于一棵子树,我们必须要走的是跑路时间,而
An_Fly
·
2020-04-06 21:00
[CQOI2009] 叶子的染色 -
树形dp
给一棵\(m\)个结点的无根树,你可以选择一个度数大于\(1\)的结点作为根,然后给一些结点着以黑色或白色。方案应保证根结点到每个叶子的简单路径上都至少包含一个有色结点。对于每个叶结点\(u\),定义\(c[u]\)为从根结点从\(u\)的简单路径上最后一个有色结点的颜色。给出每个\(c[u]\)的值,设计着色方案,使得着色结点的个数尽量少。Solution选择任意一个点为根,答案都是相同的随便选
Mollnn
·
2020-04-06 14:00
[POI2014][
树形DP
]FarmCraft
题目InavillagecalledByteville,therearehousesconnectedwithN-1roads.Foreachpairofhouses,thereisauniquewaytogetfromonetoanother.Thehousesarenumberedfrom1to.Thehouseno.1belongstothevillageadministratorBytea
DarthVictor
·
2020-04-06 09:00
【
树形dp
】 Bzoj 4472 Salesman
题目某售货员小T要到若干城镇去推销商品,由于该地区是交通不便的山区,任意两个城镇之间都只有唯一的可能经过其它城镇的路线。小T可以准确地估计出在每个城镇停留的净收益。这些净收益可能是负数,即推销商品的利润抵不上花费。由于交通不便,小T经过每个城镇都需要停留,在每个城镇的停留次数与在该地的净收益无关,因为很多费用不是计次收取的,而每个城镇对小T的商品需求也是相对固定的,停留一次后就饱和了。每个城镇为了
Vocanda
·
2020-04-05 18:00
加分二叉树【
树形dp
】
设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第j个节点的分数为,tree及它的每个子树都有一个加分,任一棵子树subtree(也包含tree本身)的加分计算方法如下:subtree的左子树的加分×subtree的右子树的加分+subtree的根的分数若某个子树为空,规定其加分为1,叶子的加分就是叶节点
poozhai
·
2020-04-05 18:00
[bzoj4472][
树形DP
] Salesman
当然最后还是发觉应该用
树形DP
。
DarthVictor
·
2020-04-04 19:00
JSOI Salesman
树形Dp
题目链接https://www.luogu.com.cn/problem/P6082分析这题一眼应该就能看出来是
树形DP
,题目中都多次暗示了,所以先把定义搞出来,最开始我跳了一个坑就是把状态定义成了\(
An_Fly
·
2020-04-04 19:00
CF1172B Nauuo and Circle -
树形dp
Solution思路上类似
树形dp
吧对于点\(p\)的子树,它在排列中必定是一段连续的区间,否则就会和其它的子树相交不妨设\(p_1=1\),设点\(i\)的度数为\(d_i\
Mollnn
·
2020-04-04 17:00
[CF1187E] Tree Painting -
树形dp
给定一棵\(n\)个点的树,初始全是白点,要求你做\(n\)步操作,每一次选定一个与一个黑点相隔一条边的白点,将它染成黑点,然后获得该白点被染色前所在的白色联通块大小的权值。第一次操作可以任意选点。求可获得的最大权值。Solution显然如果选定了开始点,那么答案就是固定的设开始点为根,则答案为所有子树的大小和设以\(i\)为根的答案为\(f[i]\)则显然有\(f[v]-f[u]=n-2s[v]
Mollnn
·
2020-04-04 10:00
洛谷 P2656 采蘑菇
树形DP
+缩点+坑点
题目链接https://www.luogu.com.cn/problem/P2656分析这其实是个一眼题(bushi发现如果没有那个恢复系数,缩个点就完了,有恢复系数呢?你发现这个恢复系数其实在DAG中没有用,因为走不回去不管怎么恢复都没啥用,所以对于走不回去的子图没有什么用,于是就想到了缩点,把每个强连通缩成一个点就完了,因为我能恢复的话肯定走的越多越好,所以就把每个强连通都榨干就完了,统计答案
An_Fly
·
2020-04-04 10:00
CF1039D You Are Given a Tree
就是贪心+
树形dp
,把整个树$dfs$一次,对于每个节点考虑它子节点的最长链和次长链。
LZY_LZY
·
2020-04-03 19:00
Computer HDU - 2196 (
树形dp
)
题目来源:Computer题意给定一棵有n个节点的树,根的编号为1,求每个点到离它最远的点的距离。思路先dfs求出每个点u向下的最大距离f[u][0]和次大距离f[u][1],并且用数组node[u]记录最大路经过了与u直接相邻的哪一个子节点。现在用f[u][2]记录满足题意的最大路。再跑一边dfs,对于当前节点u,如果它的子节点v,满足了node[u]=v,说明u的最大路经过了v,v一定不能通过
JesHrz
·
2020-03-25 03:48
动态规划1
状态转移方程-》注意初始化(边界值)-》注意枚举顺序(完全背包第二维从小到大,01背包从大到小,区间先长度再左)LIS接上之前最优解,LCS,背包问题(01背包,完全背包,分组背包,依赖性问题)状态压缩,
树形
SuccessfulRoad
·
2020-03-23 21:00
NOIP训练营内部试题-数数(
树形DP
+倍增)
NOIP训练营内部试题-数数(
树形DP
+倍增)摘要:本文清北学堂NOIP训练营试题T3试题。
NOIP
·
2020-03-23 13:20
树形dp
poj2342题意:每个员工参加晚会都有一个欢乐值,但是不能和自己直属上司同时去以i号人为根,dp[i][1]表示i号人出席的总价值最大值,dp[i][0]表示i号人不出席的总价值最大值。方程:dp[i][0]+=Σmax(dp[son][0],dp[son][1]);dp[i][1]+=Σdp[son][0];个人习惯:一次dfs出来所有的解,without记忆化搜索#include#inclu
zjy_hala
·
2020-03-21 10:33
BZOJ-3566: [SHOI2014]概率充电器(
树形DP
)
id=3566
树形DP
,设up[v]为在v的子树中,v的充电概率,设dp[v]为在整颗树中v的充电概率,那么:令merge(x,y)=x+y-x*y(容斥原理)up[v]=merge(up[v],up[
AmadeusChan
·
2020-03-16 17:22
树形DP
选课
树上的背包问题学校实行学分制。每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分。学校开设了N(N#definemaxn302usingnamespacestd;intN,M;intf[maxn][maxn];structtr{intchild[maxn];intnum;};tra[maxn];ints[maxn];intdfs(intcur,intk){//cout=0)returnf
寒冰的萨兰
·
2020-03-15 00:40
hhc 1742 树的距离之和
树形dp
题目链接戳这里时间限制:10000ms单点时限:1000ms内存限制:256MB描述给定一棵包含N个节点的树,节点编号1~N。请你对于每一个节点,计算它到所有其他节点的距离之和。(每条边的长度为1)输入第一行包含一个整数N。以下N-1行,每行包含两个整数a和b,代表ab之间有一条边。对于30%的数据,1≤N≤1000对于100%的数据,1≤N≤100000输出输出N行,依次对于1~N号节点输出答案
临时变量vars
·
2020-03-14 21:18
树形DP
树形dp
的模板是在做题中总结出来的POJ2342Anniversaryparty_边
树形DP
满足自下而上,在dfs处通过递归实现与scnuoj不一样,这题需要找根节点#include#include#include
Vincy_ivy
·
2020-03-13 00:04
洛谷 P1131 [ZJOI2007]时态同步(
树形dp
,贪心)
传送门解题思路唔,我才不要上网课呢很显然对于每个节点i,必须保证叶子节点到这个点的传送距离相等,才能保证最终答案都是相等,而最少的增加次数一定就是使距离全部变成其中最大的距离。好吧,解释的不清楚。如果没听懂,重新用贪心来解释一下。先想一下最终距离。设最终距离为d。最终的距离一定就等于叶子节点到根节点的距离的最大值。设节点u有两个儿子i、j(均为叶子节点),要是它们到根节点的距离相等且等于最终距离,
尹昱钦
·
2020-03-08 10:00
树形dp
一般解决方法根->儿子,再由儿子->根,推出根的值基本模型:没有上司的舞会任意两个一起跳舞的职员层次至少相差2(关系可以看成一棵树,相邻之间不能选择即该节点的父亲和儿子,根节点没有父亲)一般解法:用f(x)表示x子树进行了决策之后x被选择,能获得的最大权值和,g(x)表示x子树进行了决策之后x没有被选进去,能够得到的最大权值和;f(x)=(枚举)g(son)+valx,g(x)=(枚举儿子)max
SuccessfulRoad
·
2020-02-26 13:00
Tree2cycle (
树形dp
)
题目大意:给你一颗生成树,求你将它改造为一个环,即每个节点的度为二,对于每一个节点来说,可以删除或增加边,每次操作的消耗均为1,求将它改造成环的最小消耗.Input:firstlinecontainsthenumberoftestcasesT(T#include#defineN1000005usingnamespacestd;intn,m,ans,cnt;boolvis[N];inthead[N]
remarkableboy
·
2020-02-17 21:00
anniversary party_hdu1520
本来以为是一道很简单的提,可以分分钟解决(实际上就是很简单)然而一直报错,找半天,竟然要多组输入(还是太菜了)所以每组需要先初始化,这是一道
树形DP
的简单题,具体思路就是我选这个上司就不能选他的直属下级
sos3210
·
2020-02-16 10:00
computer
,我就写上了……这个
树形DP
不太好想,首先得定义状态,就像数学解题设x,y一样一个点遍历的最大花费深度需要从上和下两个方向寻找所以要找到它的子节点的最大花费和父节点中不经过它的最大花费子节点好求,在代码
sos3210
·
2020-02-15 19:00
Codeforces Round #384 (Div. 2) ABCD题解
快速版题解:A、B、C水题,D
树形dp
。手速场无误。A题意:就是有n个城市,你要从a点到b点。然后0表示没有机场,1表示有机场。问你要转多少飞机。思路:神特么水题。。。
青城废人
·
2020-02-14 05:31
算法竞赛进阶指南dp学习笔记——Day2
不想再做一遍了【Polygon】倍增一倍做石子合并【ExploringPyramids】将树上的子树与字符串中的区间建立联系阶段:区间长度状态:区间左右端点决策:选取子树所占区间利用分类加法和分步乘法原理统计答案
树形
hsez_cyx
·
2020-02-12 20:00
[SDOI2013] 直径 -
树形dp
对于给定的一棵树,其直径的长度是多少,以及有多少条边满足所有的直径都经过该边。Solution有点意思先随便求一条直径(两次DFS即可),不妨设为\(s,t\),我们知道要求的这些边一定都在这条路径上,不妨将它看作一条线(用DFS+STACK把它提取出来),其中\(s\)叫左边,\(t\)叫右边我们现在就要在这条线上借出一段区间考虑如何求它的右端点,以\(s\)为根跑DFS,算出每个点子树的最长路
Mollnn
·
2020-02-11 14:00
#4707. 点分治
这条边,那就相当于两个点分树黑白染色,各自找相同颜色的祖先,然后形成新的两个点分树考虑如果连接$(u,v)$的话,那应该就是$u->rt_u$和$v->rt_v$这两条路径可以任意顺序合并起来,所以考虑
树形
xjqxjq
·
2020-02-08 14:00
2020.02.01【NOIP提高组】模拟B 组总结反思——数列(sequence) 树 【2012东莞市选】时间流逝 挖掘机技术哪家强
比赛时我自以为是地打了简简单单一个判断~~~之后Waiting……T22753.树(tree)比赛时这题我居然比赛时也想了很久,可能是因为我太懒,我很早意识到lca的思想可以做,但是我还是想有什么办法更简单,如一个玄学的DFS、诡异的
树形
MatrixCoder's Blog
·
2020-02-07 20:00
HZNU-ACM寒假集训Day10小结 树-
树形DP
树形DP
加分二叉树洛谷P1040注意中序遍历的特点:当根节点编号k时,编号小于k的都在其左子树上,编号大于k的都在右子树转移方程f[i,j]=max{f[i,k-1]*f[k+1,j]+d[k]},f[
MQFLLY
·
2020-02-07 12:00
[USACO12FEB] 附近的牛 Nearby Cows -
树形dp
,容斥
给你一棵\(n\)个点的树,点带权,对于每个节点求出距离它不超过\(k\)的所有节点权值和\(m_i\)随便定一个根,设\(f[i][j]\)表示只考虑子树,距离为\(j\)的权值和,\(g[i][j]\)表示考虑子树和父树,距离为\(j\)的权值和,显然答案可以用\(g\)表示\(f[p][0]=w[p]\)\(f[p][k]=\sumf[q][k-1]\)\(g[1][k]=f[1][k]\)
Mollnn
·
2020-02-03 21:00
[POI2008] STA-Station -
树形dp
很显然的递推式ans[q]=ans[p]+n-2*siz[q];这么个题你卡我常干嘛,害得我加快读(谁叫我是vector党呢#includeusingnamespacestd;#defineintlonglongconstintN=1000006;inlineintread(){ints=0,w=1;charch=getchar();while(ch'9'){if(ch=='-')w=-1;ch=
Mollnn
·
2020-02-03 17:00
有依赖的背包
问题描述:解法:这种树形的结构我们首先很容易去想到
树形dp
,但是和
树形dp
不一样的地方在于它选一个节点的话还有附加条件(也就是依赖关系)我们对于每一个节点可以把它看成一个分组背包dp[i][j]代表选第
_Ackerman
·
2020-02-02 16:00
CF467D. Fedor and Essay
预备知识STL之map(内置应该是hash之类的)tarjan缩点
树形dp
简单字符串邻接表存边问题分析由于同义是单向的,我们建起了单向边,容易的是,如果一个单词可以最后回到他自己,那就把这个环上的点缩成一个
_rsx
·
2020-02-01 20:00
CF1097G Vladislav and a Great Legend
考虑
树形dp
来算这个东西,强制\(X\)的Steiner树的根是\(X
Shiina_Mashiro
·
2020-01-31 21:00
【题解】CF917D Stranger Trees(prufer序列+二项式反演)
然后我们考虑先算一下至少\(k\)条边在方案里的方案数,我们可以用
树形dp
\(dp(i,j,k)\)表示对于\(i\)节点及其子树,共有\(j\)条边被选中,且和\(i\)共有\(k\)个点是在一个联通块里的
谁是鸽王
·
2020-01-29 15:00
树的直径方法总结
求法:1、
树形DP
2、两次BFS或者两次DFS算法1:
树形DP
优点:可以有效处理负边权缺点:对于记录路径的信息效率较低简单分析:先通过递归的方式到叶子底部,然后通过自底向上的方式进行更新距离,找到最长路径
RUCKYONE
·
2020-01-27 17:00
洛谷P1273 有限电视网题解
本题是
树形dp
+分组背包问题根据本题的条件,我们自然可以设计二维dp状态f[i][j],显然第一维表示的是以i为根节点的树,那么考虑第二维第二维有两种可能,一种是总价值,一种是总人数,我们可以想到控制价值并不好做
Isomorphic
·
2020-01-25 17:00
寒假Day10:
树形dp
+二分图匹配(匈牙利算法)练习
树形dp
数的最小点覆盖问题对于
树形dp
我的理解是:在一棵树上做动态规划HDU1054-StrategicGame(题目链接点击题目即可)题意:给出n个节点节点编号0~n-1,每个节点站一个哨兵,每个哨兵观察到与自己相邻的两条边
抓水母的派大星
·
2020-01-24 00:00
HDU2196 -Computer(
树形DP
)
题意:给一棵树,求出每一点到树上其他点的最远距离思路:①我们先考虑一个点到其子树中的点的最远距离定义1.dp[i][0]是以i号节点为跟到其子树的最远距离2.dp[i][1]是以i号节点为跟到其子树的次远距离(为什么维护这个后面可以知道)3.son[i]是以i号节点为根的的子树中距离i最远的儿子的编号这样可以通过第一次dfs来的到②现在再来考虑最远距离要通过其父亲定义1.dp[i][2]为通过i的
overrate_wsj
·
2020-01-23 21:00
初识树形动规
这几天又感受到了被游戏\(TreeDP\)支配的恐惧,先写写初步对
树形DP
的认识吧。
摸鱼酱
·
2020-01-20 11:00
树形DP
学习笔记
树形DP
学习笔记ps:本文内容与蓝书一致树的重心概念:一颗树中的一个节点其最大子树的节点树最小解法:对与每个节点求他儿子的\(size\),上方子树的节点个数为\(n-size_u\),求对于每个节点子树的最大值
拟泪咸阳
·
2020-01-18 17:00
上一页
24
25
26
27
28
29
30
31
下一页
按字母分类:
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
其他