点支配、点覆盖、点独立

【专题】树的最小支配集 最小点覆盖 最大独立集 最小支配集 最小点覆盖 最大独立集图G=(V,E)定义:最小支配集:从V中取尽量少的点组成一个集合使得V中剩下的点都与取出来的点有边相连最小点覆盖:从V中取尽量少的点组成一个集合使得E中所有的边都与取出来的点相连最大独立集:从V中取尽量少的点组成一个集合使得这些点之间没有边相连对于图中的最下支配集、最小点覆最大独立集问题是一个NP的问题,但在树中可以通过贪心或动态规划的方法很快求得。贪心这三个问题得 阅读详情

【概念】

(1)点支配集,极小点支配集,最小点支配集,点支配数----γ0(G);

(2)点覆盖集,极小点覆盖集,最小点覆盖集,点覆盖数----α0(G);

(3)点独立集,极大点独立集,最大点独立集,点独立数----β0(G);

(4)边覆盖集,极小边覆盖集,最小边覆盖集,边覆盖数----α1(G);

(5)边独立集,及答辩独立集,最大边独立集,边独立数----β1(G);

对于无向图来说,且没有孤立顶点:

α0(G)+β0(G) = n;

α1(G)+β1(G) = n;

对于二部图来说,(无向二部图G有n个顶点,且没有孤立顶点):

α0(G) = β1(G) ;

β0(G) = n - β1(G);

说明:如果二部图有m个孤立顶点,则β0(G) 和n中分别扣除m个孤立顶点后满足该式,即:β0(G) -m = n-m-β1(G)。这样原式:β0(G) = n - β1(G),仍然成立。

----------------------------------------------------------------------------------------------------------------------------

【支配与支配集】:

设无向图为G(V,E),顶点集合V*属于V,若对于任意v∈(V-V*),存在一个u∈V*,使得(u,v)∈E,则称u支配v,并称V*为G的一个点支配集。

通俗的讲,V-V*中的每个顶点都是V*中某个顶点的邻接顶点,或者说V中的顶点要么是V*集合中的元素,要么与V*中的一个顶点相邻。

极小支配集:若支配集V*的任何真子集都不是支配集,则称V*是极小支配集。

最小支配集:顶点数最少的支配集称为最小支配集。

点支配数:最小支配集中的顶点数称为点支配数。

点支配集的性质

性质1:若G中无孤立顶点,则存在一个支配集V*,使得G中除V*外的所有顶点也组成一个支配集。

性质2:若G中无孤立顶点,V*为极小支配集,则G中除V*外的所有顶点也组成一个支配集。

POJ 3659

基本算法:

以最小支配集为例,首先选择一点为根,按照深度优先遍历得到遍历序列,按照所得序列的反向序列的顺序进行贪心,对于一个既不属于支配集也不与支配集中的点相连的点来说,如果他的父节点不属于支配集,将其父节点加入支配集。

#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
const int N = 1e5+10;
struct Edge{
    int v,next;
}G[N];
int fa[N];
int vis[N];
int pos[N],head[N],top;
int now,n;
int s[N];
int set[N];
void init(){
    now = 0,top = 0;
    memset(vis,0,sizeof(vis));
    memset(head,-1,sizeof(head));
    memset(s,0,sizeof(s));
    memset(set,0,sizeof(set));
}
void DFS(int u){
    pos[now++] = u;
    for(int i = head[u]; ~i; i=G[i].next){
        int v = G[i].v;
        if(!vis[v]){
            vis[v] = 1;
            fa[v] = u;
            DFS(v);
        }
    }
}
void add(int u,int v){
    G[top] = {v,head[u]};
    head[u] = top++;
}
int MDS(){
    int ans = 0;
    for(int i = now-1; i >= 0; --i){
        int t = pos[i];
        if(!s[t]){
            if(!set[fa[t]]){
                set[fa[t]] = 1;
                ans++;
            }
            s[t] = 1;
            s[fa[t]] = 1;
            s[fa[fa[t]]] = 1;
        }
    }
    return ans;
}
int main(){
    int u,v;
    while(~scanf("%d",&n)){
        init();
        for(int i = 0; i < n-1; ++i){
            scanf("%d%d",&u,&v);
            add(u,v),add(v,u);
        }
        DFS(1);
        int ans = MDS();
        cout<<ans<<endl;
    } 
    return 0;
}

【点覆盖】

点覆盖集V*,就是G中所有的边至少有一个顶点属于V*。

极小点覆盖:若点覆盖V*的任何真子集都不是点覆盖,则称V*是极小点覆盖。

最小点覆盖:顶点个数最少的点覆盖称为最小点覆盖。

点覆盖数:最小点覆盖的顶点数称为点覆盖数。

求点覆盖数。

int MPC()
{
    int s[N] = {0};
    int set[N] = {0};
    int ans = 0;
    for(int i=now-1;i>=0;i--)
    {
        int t = pos[i];
        if(!s[t] && !s[fa[t]])
        {
            set[fa[t]] = 1;
            ans++;
            s[t] = 1;
            s[fa[t]] = 1;
        }
    }
    return ans;
}

【点独立】

点独立集:设无向图为G(V,E),顶点集合V*属于V,若V*中任意两个顶点都均不相邻,则称V*为G的点独立集。

极大点独立集:若在V*中加入任何顶点都不再是独立集,则称V*为极大点独立集。

最大点独立集:顶点数最多的点独立集称为最大点独立集。

点独立数:最大点独立集的顶点数称为点独立数。

点独立数

int MIS()
{
    int s[N] = {0};
    int set[N] = {0};
    int ans = 0;
    for(int i=now-1;i>=0;i--)
    {
        int t = pos[i];
        if(!s[t])
        {
            set[t] = 1;
            ans++;
            s[t] = 1;
            s[fa[t]] = 1;
        }
    }
    return ans;
}

【点支配集、点覆盖集、点独立集之间的联系】

定理 1 设无向图G(V,E)中无独立顶点,则G的极大点独立集都是G的极小支配集。逆命题不成立(即极小支配集未必是极大独立集).

定理 2 一个独立集是极大独立集,当且仅当它是一个支配集。

定理 3 设无向图G(V,E)中无独立顶点,则V*是G的极小(最小)点覆盖集,当且仅当V-V*是G的极大(最大)点独立集,从而有:点覆盖+点独立=n(n为顶点个数)。



TMC5130/TMC5160步进电机驱动芯片深度解析与工程实践 步进电机驱动芯片是精密运动控制系统的物理执行核心,其性能直接决定定位精度、运行噪声与系统鲁棒性。基于电流闭环控制与电压前馈调制的混合驱动原理,现代智能驱动芯片如TMC51X0系列实现了微步插补、堵转检测和片上运动规划等关键技术突破。这类芯片通过SPI寄存器级配置实现StealthChop静音驱动与SpreadCycle高动态响应模式的无缝切换,在3D打印、CNC、机器人关节等场景中显著提升能效比与控制带宽。本文围绕TMC5130与TMC5160的硬件架构差异、寄存器操作时序、驱动模式物理机制及FreeRTO 阅读详情

相关推荐

STM32-CubeMx-HAL库-串口空闲中断+DMA——利用HAL_UARTEx_ReceiveToIdle_DMA实现不定长数据接收

STM32-CubeMx-HAL库-串口空闲中断+DMA——利用HAL_UARTEx_ReceiveToIdle_DMA实现不定长数据接收

weixin_43864631的博客 1万+

【学习笔记】 支配集、覆盖集、独立集与匹配

本博文用来记录在学习二分图匹配中看到的知识点。 注:下面的图G都为无向连通图 一、点支配 【支配】 对于图G中顶点集合V中的某一个点A与另一个点B有边链接,叫做点A支配B。 【点支配集】 对于图G中顶点集合V中的某个顶点子集V',可以支配V-V'中的其他点,这个点集V'就是点支配集。 【极小支配集】 对于支配集V,他的任何真...

dhn37379的博客 732

激光三角测量法:斜射与直射式技术的原理与应用解析

本文深入解析激光三角测量法中斜射式与直射式技术的原理、应用及对比。斜射式适用于高精度小范围测量,尤其擅长处理反光表面;直射式则适合大范围位移检测,结构更简单。文章详细介绍了两种技术的光路分析、数学建模、应用场景及选型建议,并探讨了系统校准与误差分析方法,为工业检测领域提供实用参考。

weixin_29280219的博客 414

点支配集,点覆盖集,点独立集+边覆盖集,边独立集(匹配)笔记

通信例子:要在几个城市之间建立通讯基站,直接相连代表能覆盖信号,最少需要在几个城市建基站? 图G的点支配集V∗:∀v∈(V−V∗),∃v∗∈V∗(v∗,v)∈E图G的点支配集V^*:\forall v\in (V-V^*),\exists v^* \in V^* (v^*,v)\in E 图G的点支配集V∗:∀v∈(V−V∗),∃v∗∈V∗(v∗,v)∈E 即 V 中的顶点要么是 V集合中的元素、要么与 V 中的一个顶点相邻。 极小 最小https://www.cnblogs.com/CreatorKou/

ResumeProject的博客 1963

2025东方财富笔试考什么?cata能力测评攻略|答题技巧真题分享

4月10日-4月20日 专业笔试(行测+金融知识混合双打) 4月25日-5月10日 面试车轮战(AI面+半结构化+压力面) 5月15日起 Offer发放(谈薪必杀技:对标同花顺/雪球)这里不仅是金融极客的乐园,更是**“年薪30万管培生计划”**的主战场——你将用代码重构K线,用算法预判市场,成为资本市场的“数字先知”。东方财富,中国金融信息服务领域的“隐形冠军”,以**“金融数据+互联网”双擎驱动**,打造了覆盖证券、基金、期货的全生态交易平台。:• “我总坚持自己的方案”(HR:团队毒药!

Dgntsj的博客 3262

【超详细】安装了anaconda后,Ubuntu18+COLMAP配置疯狂踩坑踩至魔怔的记录

本博客收集了博主在Ubuntu18系统中编译COLMAP所遇到的困难,提供了解决方法,也收集了目前网上大多数的坑,除此之外,也为Ubuntu18系统下COLMAP的安装提供了一种新的路径。

Stay_Foo_lish的博客 3509

图论(14)点覆盖与哥尼定理

点覆盖与哥尼定理 点覆盖与最小点覆盖 现在还没有好的方法来求最小点覆盖,所以还是得靠观察 点覆盖的本质就是一个顶点子集,匹配时边子集,只不过匹配要求不能里边的边不能有公共交点 最大匹配最小点覆盖定理 上边G打错了,最后一句话,而K是最小覆盖,这个定理说明,当匹配中的边数等于点覆盖中的点数,那么此匹配是最大匹配,点覆盖是最小点覆盖。 哥尼定理 例题: 托特定理 ...

向上吧贺凯 3168

手把手教你用单结晶体管搭建简易振荡电路(含电路图和波形分析)

本文详细介绍了如何使用单结晶体管(UJT)搭建简易振荡电路,包括电路设计、波形分析和实战技巧。通过具体的电路图和参数计算,帮助电子爱好者和工程师快速掌握UJT振荡器的设计与调试方法,适用于脉冲信号生成和时钟源制作等应用场景。

weixin_29207533的博客 516

图论支配集、点独立集、点覆盖集

点支配集: 给定无向图G =(V , E),其中V是点集, E是边集, 称V的一个子集S称为支配集当且仅当对于V-S中任何一个点v, 都有S中的某个点u, 使得(u, v) ∈E。 举个例子:下图的极小支配集为{V1,V5},{V3,V6},{V2,V4,V6} 极小指如果再减小集合的任一一个顶点都不能构成支配集 该图的支配数为2,即至少需要两个顶点才能构成支配集 ...

hm__2016的博客 3833

ESP32固定翼航模硬件设计与飞行力学解析

固定翼无人机是嵌入式控制与空气动力学交叉实践的经典载体,其飞行稳定性本质源于重心、气动中心与控制面的物理耦合关系。理解静稳定度(Static Margin)、升力系数调控、偏航力矩生成等基础原理,是实现可靠姿态控制的前提。在低成本工程约束下,材料刚度、结构弹性与电机-驱动协同设计共同决定了系统动态响应边界。ESP32平台凭借高精度PWM、低功耗双模无线及丰富GPIO,成为教学级航模开发的理想主控;而魔术贴基板、可调电池配重、柔性尾翼等创新结构,则将抽象的飞行力学概念转化为可测量、可调试的实体对象,广泛应用于

weixin_29859471的博客 365

Linux USB设备命名规则

有一个USB设备,接到了Linux系统的终端的某个插口上,那么怎么找到这个设备对应设备路径呢?这个USB设备虚拟了多个功能(三个串口和一个网卡), 如何找到对应操作路径呢?

weixin_43132521的博客 1698

最小点覆盖

点覆盖:设 K 是图 G 的一个点子集,若 G 中的每一条边至少有一个端点在 K 中,则称 K 是 G 的一个点覆盖。最小点覆盖,指点数最少的点覆盖。 könig Theorem(könig定理): 一个二分图中的最大匹配数等于这个图中的最小点覆盖数。 证明:     假如我们已经通过匈牙利算法求出了最大匹配(假设它等于M),下面给出的方法可以告诉我们,选哪M个点可以覆盖

Seeker 2656

机器学习笔记 - 神经辐射场(NeRF)的简要概述

神经辐射场十分重要。在表示和渲染 3D 场景领域,神经辐射场 (NeRF) 在准确性方面取得了巨大突破。给定底层场景的多个图像,NeRF 可以从任意视点重建该场景的高分辨率、2D 渲染图。与局部光场融合 (LLFF) 和场景表示网络 (SRN) 等现有技术相比,NeRF 更能够捕获场景外观和几何形状的复杂组成部分(例如,依赖于视图的反射和复杂的材料)。NeRF的研究目的是合成同一场景不同视角下的图像。

学以致用 知行合一 1693

点支配集、点覆盖集、点独立集

1、支配与支配集:设无向图为 G(V, E),顶点集合 V*⊆V,若对于∀v∈(V–V*),∃u∈V*,使得(u, v)∈E,则称 u 支配 v,并称 V*为 G 的一个点支配集(简称支配集)。      通俗地讲,所谓点支配集,就是 V*中的顶点能“支配”V–V*中的每个顶点,即 V–V*中的每个顶点都是 V*中某个顶点的邻接顶点,或者说 V 中的顶点要么是 V*集合中的元素、要么与 V*中的...

小康的博客 3783

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

独立集,支配集,点覆盖集

独立集,支配集,点覆盖集 关于点: 一.独立集 1.独立集的概念 2.极大独立集 3.最大独立集 二.支配集(控制集) 三.独立集与支配集的关系 四.点覆盖集 关于边: 一.独立集 二.边覆盖集 三.边覆盖数与边独立数(匹配数)的关系 四.边覆盖与点独立集的关系

weixin_69884785的博客 456

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

树上的最小支配集、最小点覆盖、最大独立集(贪心解决)

首先来看一下这三个知识点的概念 一、最小支配集 对于图G=(V,E)来说,最小支配集指的是从V中取尽量少的点组成一个集合,使得对于V中剩余的点都与取出来的点有边相连。也就是说,设V‘是图G的一个支配集,则对于图中的任意一个顶点u,要么属于集合V’,要么与V‘中的顶点相邻。在V’中出去任何元素后V‘不再是支配集,则支配集是极小支配集。称G的所有支配集中顶点个数最少的支配集为最小支配集,最小支配集...

curry___的博客 2591

树形DP求树的最小支配集,最小点覆盖,最大独立集

转自:https://www.cnblogs.com/Ash-ly/p/5783877.html 一:最小支配集 考虑最小支配集,每个点有两种状态,即属于支配集合或者不属于支配集合,其中不属于支配集合时此点还需要被覆盖,被覆盖也有两种状态,即被子节点覆盖或者被父节点覆盖.总结起来就是三种状态,现对这三种状态定义如下: 1):dp[i][0],表示点 i 属于支配集合,并且以点 i 为根的子树都被覆盖了的情况下支配集中所包含最少点的个数. 2):dp[i][1],表示点 i 不属于支配集合,且以 i

Falcon的博客 720

树的最小支配集,最小点覆盖与最大独立集

最小支配集 定义1:对于图G=(V,E)来说,最小支配集指的是从V中取尽量少的点组成一个集合,使得对于V中剩余的点都与取出来的点有边相连。也就是说,设V‘是图G的一个支配集,则对于图中的任意一个顶点u,要么属于集合V’,要么与V‘中的顶点相邻。在V’中出去任何元素后V‘不再是支配集,则支配集是极小支配集。称G的所有支配集中顶点个数最少的支配集为最小支配集,最小支配集中顶点的个数称为支配数。 最...

SuperBvs的博客 1030

支配集,点覆盖集,点独立集之间的联系

1.设无向图G(u,v)中无鼓励顶点,则G的极大点独立集都是G的极小支配集。逆命题不成立 理解:设V*为G的一个极大点独立集,那么对于那些不属于V*的点,他们肯定跟V*里的某个点相连(否则就不是极大了),因此V*肯定是个支配集。而又因为V*里,所有的点都是独立的,所以,把任何一个点拿出V*后,该点跟V*中剩余的所有的点都没法相连,即无法被支配。故在该条件下V*为极小支配集。 2 一个独立集是极

No__stop 1987

最小支配集,最小点覆盖,最大独立集(贪心/DP)

最小支配集(minimal dominating set):对于图G=(V,E)来说,设V'是图G的一个支配集,则对于图中的任意一个顶点u,要么属于集合V',要么与V'中的顶点相连。 在V'中除去任何元素后V'不再是支配集,则支配集V'是极小支配集。称G中所有支配集中顶点个数最少的支配集为最小支配集,最小支配集中的顶点个数称为支配数。 最小点覆盖(minimum point coverage)...

兜率工的博客 1万+

求最小支配集,最小点覆盖,最大独立集

1、概念 最小支配集:选取一个点集,使得剩余的点都与这个集合有边相连,则称这个集合为支配集。如果在点集中去掉一个点而是这个集合不是一个支配集,那么这个集合是一个最小支配集,点集中的点的个数支配数。 最小点覆盖:选取一个点集,使得所有边都与这个集合相连,则称这个集合为点覆盖。也就是说对于任意一条边(u,v),u,v中至少有一个点在集合中。如果在点集中去掉一个点而是这个集合不是一个点覆盖...

dianlong3994的博客 613

树的最小支配集,最小点覆盖与最大独立集 - smartyfh

首先看一下三者的定义: 定义1 对于图G=(V,E)来说, 最小支配集 指的是从V中取尽量少的点组成一个集合,使得对于V中剩余的点都与取出来的点有边相连。也就是说,设V‘是图G的一个支配集,则对于图中的任意一个顶点u,要么属于集合V’,要么与V‘中的顶点相邻。在V’中出去任何元素后V‘不再是支配集,则支配集是极小支配集。称G的所有支配集中顶点个数最少的支配集为最小支配集,最小支配集中顶点的个

Crazy_Bear 775

贪心法求树的最小支配集,最小点覆盖,最大独立集

定义: 最小支配集:对于图G = (V, E) 来说,最小支配集指的是从 V 中取尽量少的点组成一个集合, 使得 V 中剩余的点都与取出来的点有边相连.也就是说,设 V' 是图的一个支配集,则对于图中的任意一个顶点 u ,要么属于集合 V', 要么与 V' 中的顶点相邻. 在 V' 中除去任何元素后 V' 不再是支配集, 则支配集 V' 是极小支配集.称G 的所有支配集中顶点个数最少的...

dimaishu7553的博客 508

最小支配集、最小覆盖点、最大独立集

概念: 1、最小支配集:在图中用尽量少的点去覆盖所有的点(规则:当一个点被覆盖后,在图中与其相邻的点也将被覆盖); 2、最小点覆盖:在图中用尽量少的点去覆盖所有的边(规则:当一个点被覆盖后,在图中与其相邻的边将被覆盖); 3、最大独立集:在图中选择尽量多的点(规则:保证被选则的点在图中没有边相连); 对于任意图上述三个问题不存在多项式时间内的算法 但对于树,上述三个问题可

Crazy_Bear 4930
上一篇: polya
下一篇: 边覆盖、边独立集
嘿嘿不错
博客等级 码龄11年 10粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值