树形dp
文章平均质量分 69
鲜果维他命
Don't be a programmer,to be a problem solver
展开
-
P2585 [ZJOI2006]三色二叉树-----树形dp
题目链接:https://www.luogu.com.cn/problem/P2585#submit题目大意:给你一颗二叉树,你用三种颜色分别为红,蓝,绿去染色每一个节点,但是染色有规定,规定父节点不能和任何一个儿子节点颜色相同,并且两个儿子的颜色也不能相同,简而言之就是父亲与儿子的节点颜色要两两不同,问你1.最多能然多少个绿色节点2.最少能染多少个绿色节点.分析:1.首先这道题的建图很关键,选择好的建图方式不至于爆内存,这里推荐使用邻接表建图2.对于第一问求最大值,我们设f[u][0],表示原创 2021-05-10 17:10:25 · 170 阅读 · 2 评论 -
背包问题----分组背包(超详细讲解)
分组背包1.定义2.讲解3.练习题1.定义分组背包,通俗的讲就是,给你N组物品,然后每一组你至多选择一个物品(也可以不选),每个物品都有自己的体积和价值,现在给你一个容里为M的背包,让你用这个背包装物品,使得物品价值总和最大.2.讲解其实就类似于01背包,对于一个物品有两种决策选或不选,但是分组背包是在01背包的基础上对物品进行了分组,并且每一组只能最多选择一个物品,所以我们不妨用01背包的思想去思考分组背包.分析:我们设f[i][j]为当前考虑到了第i组物品,剩余容里为j的背包能装物品的最大价值原创 2021-05-09 17:29:06 · 20946 阅读 · 20 评论 -
P1122 最大子树和---树形dp(超详细解答)
题目链接:https://www.luogu.com.cn/problem/P1122题目大意:一棵树有n个节点,每个节点都有一个权值(可正可负),现在要你找到一棵子树(也可能是整棵树本身),要求子树的所有节点权值之和最大,输出这个最大值分析:Step1:首先我们需要根据题中给的节点关系建立一颗树形图,注意建图的过程需要分两次,因为只告诉你a,b有边,但是不具体谁是儿子谁是爹,所以我们第一次默认编号大的为儿子,小的为爹,然后去找根节点(也就是没有爹的节点),如果根节点不止一个,此时说明我们建立的树形原创 2021-05-09 15:42:08 · 375 阅读 · 0 评论 -
Anniversary party---树形dp
题目链接https://vjudge.z180.cn/problem/POJ-2342题目大意:公司安排一场聚会,你可以安排聚会有哪些人参加,公司里有上下级关系,每个员工都有一个权值(可正可负),但是聚会安排有一个硬性要求,就是,一个员工和他的直接上司不能同时参加聚会,你的任务是,使得参加聚会的人的权值之和尽可能的大,输出最大是多少.输入:第一行一个整数N,代表公司员工人数接下来N行,每行一个整数wi,表示第i名员工的权值接下里N-1行,每行两个整数L,K,表示K是L的直接上司分析:首先根据关系原创 2021-05-06 15:56:52 · 130 阅读 · 0 评论