博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分图——最大不可互相到达数 = 最小路径覆盖数
阅读量:4956 次
发布时间:2019-06-12

本文共 1581 字,大约阅读时间需要 5 分钟。

 

study from:

https://blog.csdn.net/winter2121/article/details/79849472

 

 

https://nanti.jisuanke.com/t/19979

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 using namespace std;18 #define ll long long19 #define minv 1e-620 #define inf 1e921 #define pi 3.141592653622 #define nl 2.718281828423 const ll mod=1e9+7;//99824435324 const int maxn=1e2+10;25 26 bool vis[maxn];27 int cony[maxn],r[maxn][maxn],n;28 29 bool dfs(int x)30 {31 int y;32 for (y=1;y<=n;y++)33 if (!vis[y] && r[x][y])34 {35 vis[y]=1;36 if (cony[y]==0 || dfs(cony[y]))37 {38 cony[y]=x;39 return 1;40 }41 }42 return 0;43 }44 45 int main()46 {47 int sum,t,m,i,j,k,x,y;48 scanf("%d",&t);49 while (t--)50 {51 scanf("%d%d",&n,&m);52 memset(r,0,sizeof(r));53 for (i=1;i<=m;i++)54 {55 scanf("%d%d",&x,&y);56 r[x][y]=1;57 }58 59 for (k=1;k<=n;k++)60 for (i=1;i<=n;i++)61 for (j=1;j<=n;j++)62 r[i][j]|=r[i][k]&r[k][j];63 64 sum=n;65 memset(cony,0,sizeof(cony));66 for (i=1;i<=n;i++)67 {68 memset(vis,0,sizeof(vis));69 sum-=dfs(i);70 }71 printf("%d\n",sum);72 }73 return 0;74 }

 

另外:(copy from other)

最大匹配数:最大匹配的匹配边的数目

最小点覆盖数:选取最少的点,使任意一条边至少有一个端点被选择
最大独立数(最大团):选取最多的点,使任意所选两点均不相连
最小路径覆盖数:对于一个 DAG(有向无环图),选取最少条路径,使得每个顶点属于且仅属于一条路径。路径长可以为 0(即单个点)。
定理1:最大匹配数 = 最小点覆盖数(这是 Konig 定理)
定理2:最大匹配数 = 最大独立数
定理3:最小路径覆盖数 = 顶点数 - 最大匹配数

转载于:https://www.cnblogs.com/cmyg/p/9556284.html

你可能感兴趣的文章
Haskell学习-高阶函数
查看>>
PC-XP系统忘记密码怎么办
查看>>
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>
Boosting(提升方法)之AdaBoost
查看>>
链接元素<a>
查看>>
Binding object to winForm controller through VS2010 Designer(通过VS2010设计器将对象绑定到winForm控件上)...
查看>>
Spring Boot实战笔记(二)-- Spring常用配置(Scope、Spring EL和资源调用)
查看>>
第二章:webdriver 控制浏览器窗口大小
查看>>
【动态规划】流水作业调度问题与Johnson法则
查看>>
Python&Selenium&Unittest&BeautifuReport 自动化测试并生成HTML自动化测试报告
查看>>
活现被翻转生命
查看>>
POJ 1228
查看>>
SwaggerUI+SpringMVC——构建RestFul API的可视化界面
查看>>
springmvc怎么在启动时自己执行一个线程
查看>>
流操作的规律
查看>>
Python基础学习15--异常的分类与处理
查看>>
javascript运算符的优先级
查看>>
React + Redux 入门(一):抛开 React 学 Redux
查看>>
13位时间戳和时间格式化转换,工具类
查看>>
vue router-link子级返回父级页面
查看>>