美文网首页GraphTheory
BZOJ-1143-祭祀river(二分图-偏序集最大反链)

BZOJ-1143-祭祀river(二分图-偏序集最大反链)

作者: 雨落八千里 | 来源:发表于2019-08-21 20:02 被阅读22次

祭祀river

题意:

  • 在有向无环图中找尽可能多的点使这些点任意两点都不能通过已知的边到达对方(最大反链(点集)) (区别最大点独立集)

思路:

  • 最大反链==最小可相交路径覆盖
#include<bits/stdc++.h>
using namespace std;
int edge[110][110];
int match[110];
int vis[110];
int n,m;
void warshell(int n)
{
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(edge[i][j]==0)
            {
                for(int k=1;k<=n;k++)
                {
                    if(edge[i][k]&&edge[k][j])
                    {
                        edge[i][j]=1;
                    }
                }
            }
        }
    }
}
int Hungarian(int x)
{
    for(int i=1;i<=n;i++)
    {
        if(!vis[i]&&edge[x][i])
        {
            vis[i]=1;
            if(match[i]==-1||Hungarian(match[i]))
            {
                match[i]=x;
                return 1;
            }
        }
    }
    return 0;
}
int main( )
{
    int x,y;
    scanf("%d%d",&n,&m);
    memset(edge,0,sizeof(edge));
    memset(match,-1,sizeof(match));
    for(int i=1;i<=m;i++)
    {
        scanf("%d%d",&x,&y);
        edge[x][y]=1;
    }
    warshell(n);
    int ans=0;
    for(int i=1;i<=n;i++)
    {
        memset(vis,0,sizeof(vis));
        if(Hungarian(i))
        {
            ans++;
        }
    }
    printf("%d\n",n-ans);
    return 0;
}

相关文章

  • BZOJ-1143-祭祀river(二分图-偏序集最大反链)

    祭祀river题意:在有向无环图中找尽可能多的点使这些点任意两点都不能通过已知的边到达对方(最大反链(点集)) (...

  • Dilworth定理

    狄尔沃斯定理(Dilworth's theorem)亦称偏序集分解定理,其定义是:对于任意有限偏序集,其最大反链中...

  • 二分图

    二分图判定: 题目链接:二分图判定 dfs: 最大匹配: 题目链接:最大匹配-匈牙利算法 dfs: 二维最大匹配:...

  • 一, 格的基本定义和性质 定义 偏序集定义: 偏序集中对任意两个元a, b, 在L中都存在一个元是他们...

  • Arxiv网络科学论文摘要19篇(2021-01-19)

    用于社会推荐的自监督多通道超图卷积网络; 超网络:从偏序集到几何; 区块链社会网络中的社区检测; 缓解COVID-...

  • 二分匹配 专题整理

    二分匹配学习记录 参考资料 二分图讲解及匈牙利模板 HDU 2444 题意 给出图,求是否二分图,和二分图的最大匹...

  • 堆/二分搜索树/图

    最大堆 heap sort 二分搜索 binary sort 二分搜索树 并查集union find 基于size...

  • 2021-10-12leetcode

    快速加 快速幂 二分图的最大匹配 一次A掉

  • 学习计划

    数据结构先修课程 C++语言程序设计基础:类、继承、重载、重写、虚方法、模板; 离散数学基础: 集合、偏序集、良序...

  • 二分图最大匹配

    题目描述 给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数 输入输出格式 输入格式第一行,n,m...

网友评论

    本文标题:BZOJ-1143-祭祀river(二分图-偏序集最大反链)

    本文链接:https://www.haomeiwen.com/subject/vfiisctx.html