若加 权图 G=fV,目的顶点集 的子集 中的任何 顶点 之间都不相邻 ,则称 为 图 G的独立集 ,顶点个数最多的独 立集称为最大独立 集。各顶点权 重之和最大 的独立集称为图 G的最大加权独立集 。如图 1所示 ,顶点集合 (4,3,1)是该图 的一个独立集, 且是最 大独立集 ,但不是最大加权独立集 。 顶点集合(5,2)是独立集,且是最大加权独立集 。最大加权独 立集 问题 已被证明为是个 NP完全问题。
一棵树,每个点有一个权值,选择一个权值最大的无父子节点点集。
关键词:树的最大”权值“独立集
f[i][0]:以i为根的子树不选根节点最大权值,
f[i][1]:以i为根的子树选根节点最大权值
f[u][1]+=f[v][0];
f[u][0]+=max(f[v][1],f[v][0]);
注:
1.若所有点的权值都大于0,则树的最大”权值“独立集也是极大点独立集,即任选两个点,一定有且仅有一个在该集合中。若存在点的权值小于0,则不一定成立。
变题:选择一个无祖先与后代节点的最大权值点集
f[u]:以i为根的子树的最大权值
f[u]=max{ w[u],sum{f[v]},v是u的孩子 } 两个选择:当前节点/后代,两个选择互斥
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define sf scanf
#define pf printf
#define maxn 10000
#define inf 0x3f3f3f
#define INF 1ll
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?