精华内容
下载资源
问答
  • 算法分析设计的一道题目,最大覆盖问题,C语言代码
  • 最小边覆盖= 最大独立集 = |V| - 最大匹配数 这个是在图是二分图上进行的 最小路径覆盖和最小边覆盖不同,不要求给的图是二分...然后最小路径覆盖 = n-m,n为图的点的个数,m为新造二分图的最大匹配。证明也是特...

    最小边覆盖 = 最大独立集 = |V| - 最大匹配数
    这个是在原图是二分图上进行的
    最小路径覆盖和最小边覆盖不同,不要求给的图是二分图,而是要求是N x N的有向图,不能有环,然后根据原图构造二分图,构造方法是将点一分为二,如,i分为i1和i2然后如果i和j有边,那么就在i1和j2之间连一条边。由此构成二分图
    然后最小路径覆盖 = n-m,n为原图的点的个数,m为新造二分图的最大匹配。证明也是特别简单的,根据定义最小路径覆盖里要求同一个点只可以属于一条路径,即路径时不可以开叉的,如果在二分图里选两条有公共点的边那么反应在原图上就是路径有岔路了,所以二分图里选的边必须是无公共交点的,这就是转化到最大匹配了。

    总结:

    【无向图的最大独立数】: 从V个顶点中选出k个顶,使得这k个顶互不相邻。 那么最大的k就是这个图的最大独立数。

    【无向图的最大团】:  从V个顶点选出k个顶,使得这k个顶构成一个完全图,即该子图任意两个顶都有直接的边。

    【最小路径覆盖(原图不一定是二分图,但必须是有向图,拆点构造二分图)】:在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联。最小路径覆盖 = |V| - 最大匹配数

    【最小边覆盖(原图是二分图)】:在图中找一些边,使之覆盖了图中所有顶点,且任何一个顶点有且只有一条边与之关联。最小边覆盖 = 最大独立集 = |V| - 最大匹配数

    【最小顶点覆盖】:用最少的点(左右两边集合的点)让每条边都至少和其中一个点关联。

    PS: 原来学二分匹配时就整理过这些数字,他们之间关系是很多。如: 最小覆盖数+最大独立数 = 顶点数。 虽然求出他们都是np问题。但对于特殊的图还是有好的算法的,如:

    在二分图中,最小覆盖数 等于 最大匹配数,而最大独立数又等于顶点数减去最小覆盖数(=最大匹配数),所以可以利用匈牙利求出最大独立数等等。

    a.点覆盖集:无向图G的一个点集,使得该图中所有边都至少有一点端点在该集合内。


    b.点独立集:无向图G的一个点集,使得任两个在该集合中的点在原图中不相邻。


    c.最小点覆盖集:无向图G中点数最少的点覆盖集


    d.最大点独立集:无向图G中,点数最多的点独立集


    e.最小点权覆盖集:带点权的无向图中,点权之和最小的点覆盖集


    f.最大点权独立集:实在带点权无向图中,点权之和最大的点独立集


    性质:

    最大团 = 补图的最大独立集


    最小边覆盖 = 二分图最大独立集 = |V| - 最小路径覆盖


    最小路径覆盖 = |V| - 最大匹配数

    最小顶点覆盖 = 最大匹配数

    最小顶点覆盖 + 最大独立数 = |V|

    最小割 = 最小点权覆盖集 = 点权和 - 最大点权独立集

     

    原文链接:https://blog.csdn.net/leolin_/article/details/7199688

    展开全文
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、IoT、云原生、数据库、微服务、安全、开发与运维9大技术领域。","link1":"https://developer.aliyun.com/group/?spm=a2c6h.12883283.1377930.25.7287201c9RKTCi&groupType=other","link":"https://developer.aliyun.com/","icon":"https://img.alicdn.com/tfs/TB1TlXBEkT2gK0jSZPcXXcKkpXa-200-200.png","btn2":"开发者藏经阁","tip":"打通开发者成长路径,学习中心 。全线阿里云技术大牛公开课,立即查看","btn1":"技术与产品技术圈","link2":"https://developer.aliyun.com/topic/ebook?spm=a2c6h.12883283.1362932.15.7287201c9RKTCi","title":"阿里云开发者社区"}],"search":[{"txt":"学习中心","link":"https://developer.aliyun.com/learning?spm=a2c6h.13788135.1364563.41.299f5f24exe3IS"},{"txt":"技能测试中心 ","link":"https://developer.aliyun.com/exam?spm=a2c6h.13716002.1364563.42.6cac18a3JWCM5U"},{"txt":"开发者云 ","link":"https://developer.aliyun.com/adc/?spm=a2c6h.13716002.1364563.59.6b0818a3DV0vzN"},{"txt":"在线编程 ","link":"https://developer.aliyun.com/coding?spm=5176.13257455.1364563.57.701e7facHvqi5r"},{"txt":"学习中心 ","link":"https://developer.aliyun.com/learning?spm=a2c6h.12883283.1364563.41.5f1f201c5CLDCC"},{"txt":"高校计划 ","link":"https://developer.aliyun.com/adc/college/?spm=a2c6h.13716002.1364563.58.6cac18a3JWCM5U"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}}}

    {"$env":{"JSON":{}},"$page":{"env":"production"},"$context":{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、IoT、云原生、数据库、微服务、安全、开发与运维9大技术领域。","link1":"https://developer.aliyun.com/group/?spm=a2c6h.12883283.1377930.25.7287201c9RKTCi&groupType=other","link":"https://developer.aliyun.com/","icon":"https://img.alicdn.com/tfs/TB1TlXBEkT2gK0jSZPcXXcKkpXa-200-200.png","btn2":"开发者藏经阁","tip":"打通开发者成长路径,学习中心 。全线阿里云技术大牛公开课,立即查看","btn1":"技术与产品技术圈","link2":"https://developer.aliyun.com/topic/ebook?spm=a2c6h.12883283.1362932.15.7287201c9RKTCi","title":"阿里云开发者社区"}],"search":[{"txt":"学习中心","link":"https://developer.aliyun.com/learning?spm=a2c6h.13788135.1364563.41.299f5f24exe3IS"},{"txt":"技能测试中心 ","link":"https://developer.aliyun.com/exam?spm=a2c6h.13716002.1364563.42.6cac18a3JWCM5U"},{"txt":"开发者云 ","link":"https://developer.aliyun.com/adc/?spm=a2c6h.13716002.1364563.59.6b0818a3DV0vzN"},{"txt":"在线编程 ","link":"https://developer.aliyun.com/coding?spm=5176.13257455.1364563.57.701e7facHvqi5r"},{"txt":"学习中心 ","link":"https://developer.aliyun.com/learning?spm=a2c6h.12883283.1364563.41.5f1f201c5CLDCC"},{"txt":"高校计划 ","link":"https://developer.aliyun.com/adc/college/?spm=a2c6h.13716002.1364563.58.6cac18a3JWCM5U"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}}}}

    展开全文
  • 题链接 思路: 因为骨牌是1*2的,所以可以看成是两个格子放一个。 建图过程:假设格子的坐标是(i,j),那么可以根据i+j的奇偶把所有的格子分成黑白两种,如果某个黑格子没有被禁止,那么就可以让它和它周围的白...

    原题链接
    思路:
    因为骨牌是1*2的,所以可以看成是两个格子放一个。
    建图过程:假设格子的坐标是(i,j),那么可以根据i+j的奇偶把所有的格子分成黑白两种,如果某个黑格子没有被禁止,那么就可以让它和它周围的白格子连边。黑格子周围都不会出现黑格子,所以同一类型的格子之间是不存在边的。建图后求二分图的最大匹配即可。
    代码:

    #include<bits/stdc++.h>
    using namespace std;
    int g[110][110];///表示不能放置
    bool st[110][110];
    typedef pair<int,int>PII;
    PII mat[110][110];
    int nx[]={0,0,1,-1};
    int ny[]={1,-1,0,0};
    int n,m;
    
    bool check(int x,int y){
        if(x>0&&x<=n&&y>0&&y<=n&&!g[x][y]&&!st[x][y]) return 1;
        return 0;
    }
    
    bool Find(int x,int y){
        for(int i=0;i<4;i++){
            int nxx=x+nx[i],nyy=y+ny[i];
            if(check(nxx,nyy)){
                st[nxx][nyy]=1;
                PII t=mat[nxx][nyy];
                if(t.first==-1||Find(t.first,t.second)){
                    mat[nxx][nyy]={x,y};
                    return 1;
                }
            }
        }
        return 0;
    }
    
    int main(){
        cin>>n>>m;
        for(int i=1;i<=m;i++){
            int x,y;
            cin>>x>>y;
            g[x][y]=1;
        }
        memset(mat,-1,sizeof mat);
        int res=0;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if((i+j)%2&&!g[i][j]){
                    memset(st,0,sizeof st);
                    if(Find(i,j)) res++;
                }
        cout<<res<<endl;   
        return 0;
    }
    
    展开全文
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、IoT、云原生、数据库、微服务、安全、开发与运维9大技术领域。","link1":"https://developer.aliyun.com/group/?spm=a2c6h.12883283.1377930.25.7287201c9RKTCi&groupType=other","link":"https://developer.aliyun.com/","icon":"https://img.alicdn.com/tfs/TB1TlXBEkT2gK0jSZPcXXcKkpXa-200-200.png","btn2":"开发者藏经阁","tip":"打通开发者成长路径,学习中心 。全线阿里云技术大牛公开课,立即查看","btn1":"技术与产品技术圈","link2":"https://developer.aliyun.com/topic/ebook?spm=a2c6h.12883283.1362932.15.7287201c9RKTCi","title":"阿里云开发者社区"}],"search":[{"txt":"学习中心","link":"https://developer.aliyun.com/learning?spm=a2c6h.13788135.1364563.41.299f5f24exe3IS"},{"txt":"技能测试中心 ","link":"https://developer.aliyun.com/exam?spm=a2c6h.13716002.1364563.42.6cac18a3JWCM5U"},{"txt":"开发者云 ","link":"https://developer.aliyun.com/adc/?spm=a2c6h.13716002.1364563.59.6b0818a3DV0vzN"},{"txt":"在线编程 ","link":"https://developer.aliyun.com/coding?spm=5176.13257455.1364563.57.701e7facHvqi5r"},{"txt":"学习中心 ","link":"https://developer.aliyun.com/learning?spm=a2c6h.12883283.1364563.41.5f1f201c5CLDCC"},{"txt":"高校计划 ","link":"https://developer.aliyun.com/adc/college/?spm=a2c6h.13716002.1364563.58.6cac18a3JWCM5U"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}}}

    {"$env":{"JSON":{}},"$page":{"env":"production"},"$context":{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、IoT、云原生、数据库、微服务、安全、开发与运维9大技术领域。","link1":"https://developer.aliyun.com/group/?spm=a2c6h.12883283.1377930.25.7287201c9RKTCi&groupType=other","link":"https://developer.aliyun.com/","icon":"https://img.alicdn.com/tfs/TB1TlXBEkT2gK0jSZPcXXcKkpXa-200-200.png","btn2":"开发者藏经阁","tip":"打通开发者成长路径,学习中心 。全线阿里云技术大牛公开课,立即查看","btn1":"技术与产品技术圈","link2":"https://developer.aliyun.com/topic/ebook?spm=a2c6h.12883283.1362932.15.7287201c9RKTCi","title":"阿里云开发者社区"}],"search":[{"txt":"学习中心","link":"https://developer.aliyun.com/learning?spm=a2c6h.13788135.1364563.41.299f5f24exe3IS"},{"txt":"技能测试中心 ","link":"https://developer.aliyun.com/exam?spm=a2c6h.13716002.1364563.42.6cac18a3JWCM5U"},{"txt":"开发者云 ","link":"https://developer.aliyun.com/adc/?spm=a2c6h.13716002.1364563.59.6b0818a3DV0vzN"},{"txt":"在线编程 ","link":"https://developer.aliyun.com/coding?spm=5176.13257455.1364563.57.701e7facHvqi5r"},{"txt":"学习中心 ","link":"https://developer.aliyun.com/learning?spm=a2c6h.12883283.1364563.41.5f1f201c5CLDCC"},{"txt":"高校计划 ","link":"https://developer.aliyun.com/adc/college/?spm=a2c6h.13716002.1364563.58.6cac18a3JWCM5U"}],"countinfo":{"search":{"length_pc":0,"length":0},"card":{"length_pc":0,"length":0}}}}

    展开全文
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...
  • 题链接:点击打开链接 A B两个机器,存在多种模式,有n个任务可以用A...最小点覆盖=最大匹配数匈牙利算法, code: #include #include #include #include #include using namespace std; int map[110][110],n,m
  • 那么图的最小路径覆盖数 = 图顶点数 – 最小路径上的边数 也就是 图的最小路径覆盖数 = 图顶点数 – 二分图最大匹配数。 转载于:https://www.cnblogs.com/XBWer/archive/2012/08/13/2637205.html
  • 题地址:http://poj.org/problem?id=3041 题意:一个n*n的网格中,有k个大小为1*1的小行星,现在...最小顶点覆盖=最大匹配. 然后考虑如何建图:我们考虑将横纵坐标看成点,将星球位置看成边,这样就行了 #include...
  • 算法导论(书第三版)

    热门讨论 2013-03-06 14:31:34
    书的书影,高清版的。 算法导论第三版目录 目录 出版者的话 译者序 前言 第一部分 基础知识 第1章 算法在计算中的作用 1.1 算法 1.2 作为一种技术的算法 思考题 本章注记 第2章 算法基础 2.1 插入排序 ...
  • 把每个点拆成两个,对于图中的每一条边(i,j)连接(i,j+n),最小路径覆盖就是点数n-二分图最大匹配。方案直接顺着匹配dsf。。 #include<iostream> #include<cstdio> using namespace std; const int N=...
  • 引入题目有一道这种题:给一个有向无环图,一个士兵可以沿着某条路径走到底,现求最小需要多少个...放弃想法二直接在图基础上跑最大流,然后考虑到流量不好控制,遂放弃想法三首先考虑哪些点是起点,假定S是一个起点
  • 将源点s与u中连一条权值为u的点权的边,汇点t和v中连一条权值为点权v的边,图中的uv之间的边容量都设为INF,求出最大流就是最大点权覆盖了。 而最大点权独立集=总点权-最大点权覆盖。 可以用Edmonds_Karp算法...
  • 由于最小路径覆盖数 === 图G的顶点数 −-− 二分图的最大匹配数 所以,套模板即可。 #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath>...
  • 如何延长无线自组网生存期...算法在保证网络连通性与无向性的同时,使得节点能用最小功率构建保存了图最长生存期路径的子图.理论分析和仿真实验结果表明,MLTC算法在不同的发送和接收功耗比下均能有效延长网络的生存期.
  • 文本内容框架: §1图论点、边集和二分图的相关概念和性质 §2二分图最大匹配求解 匈牙利算法、Hopcroft-Karp算法 ...§3二分图最小覆盖集和最大独立集的构造 ...每章节都详细地讲解了问题介绍,算法原
  • 有四种天线,分别可以朝四个方向覆盖一个城镇(place of interest)(可以看成一个天线可以覆盖两个城镇),给出一张图,星号代表城镇,空格代表空地,问最少需要多少天线可以覆盖所有的城镇。 思路: node标记点...
  • 常用算法

    2020-12-02 19:39:19
    把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,...
  • 一、算法_分治算法

    2017-01-07 05:43:29
    … 分治算法介绍:简单点理解就是分开处理,如果一个问题可以容易的解决,则直接解决,否则将其分解为规模较小的子问题去解决,子问题与问题形式相同,递归子问题,然后将子问题的解合并。 如问题一如果卖出黄金,...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...
  • 1. 二分图最大匹配数 = 二分图最小点覆盖数 2. 二分图最小点覆盖数 = 二分图顶点数 - 二分图最小点覆盖数 注意,都是二分图 代码:(匈牙利算法) 1 #include <iostream> 2 #include <cstring...
  • 17.3.4 二分覆盖 17.3.5 单源最短路径 17.3.6 最小成本生成树 17.4 参考及推荐读物 第18章 分而治之 18.1 算法思想 18.2 应用 18.2.1 残缺棋盘 18.2.2 归并排序 18.2.3 快速排序 18.2.4 选择 18.2.5 相距最近的点对 ...
  • 链接 ... 大意 有ttt组数据,每组数据给定一个nnn个点,mmm条边的...最小路径覆盖数=图G的顶点数-二分图的最大匹配数 代码 #include&lt;cstdio&gt; #include&lt;cstring&gt; #define N ...
  • 题目:题链接(困难) 标签:图、广度优先搜索、贪心算法 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N2)O(N^2)O(N2) O(N)O(N)O(N) 56ms (22.67%) Ans 2 (Python) Ans 3 (Python) ...
  • 首先是匈牙利算法的本质:(图参考了zxy的) 这个图要详细看完,那么刚开始我想的“找小三”实际上就是递归找增广路的过程,如果找到增广路,匹配数就一定可以加一。(代码就不上了,都是一个模板) ...
  • 匈牙利算法原理详解

    2021-02-24 14:13:06
    匈牙利算法用于解决求最大分配的分配问题,这是实实在在用在工作中解决问题的算法了,求解相应的代价矩阵,使得代价矩阵最小,匹配结果最有也就是匈牙利算法的初衷。 最后的最佳匹配问题,是在满足用最少行覆盖所有...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台;社区覆盖了云计算、大数据、人工智能、...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 134
精华内容 53
关键字:

最大覆盖原算法