[Loj]#6002. 「网络流 24 题」最小路径覆盖
来源:互联网 发布:生成对抗网络理解 编辑:程序博客网 时间:2024/06/05 10:31
题意如题名,最小路径覆盖。
答案为点数减去最大匹配。
用匈牙利直接跑。
#include <cstdio>#include <cstring>#include <vector>using namespace std;const int N=205;int n,m;int map[N][N];int fr[N];int vis[N];int sum;int in[N];int le;int fa[N];vector <int > path[N];int get(int x){return x==fa[x]?x:fa[x]=get(fa[x]);}void me(int x,int y){int fx=get(x),fy=get(y);fa[fx]=fy;}bool find(int x){for (int i=1;i<=n;i++){if (map[x][i]&&!vis[i]){vis[i]=1;if (!fr[i]||find(fr[i])) {fr[i]=x;return 1;}}}return 0;}int main(){register int i,j;scanf("%d %d",&n,&m);for (i=1;i<=m;i++){int x,y;scanf("%d %d",&x,&y);map[x][y]=1;}for (i=1;i<=n;i++){memset(vis,0,sizeof(vis));if (find(i)) sum++;}//memset(vis,0,sizeof(vis));for (i=1;i<=n;i++) fa[i]=i;for (i=1;i<=n;i++){if (fr[i])if (fa[i]!=fa[fr[i]]) me(i,fr[i]);}for (i=1;i<=n;i++){path[fa[i]].push_back(i);}for (i=1;i<=n;i++){if (path[i].size()){for (j=0;j<path[i].size();j++){printf("%d ",path[i][j]);}printf("\n");}}printf("%d",n-sum);}
阅读全文
0 0
- [Loj]#6002. 「网络流 24 题」最小路径覆盖
- 【loj】#6002. 「网络流 24 题」最小路径覆盖
- loj #6002. 「网络流 24 题」最小路径覆盖(二分匹配)
- LOJ 6002「网络流 24 题」最小路径覆盖
- 【LOJ】6002 「网络流 24 题」最小路径覆盖 二分图
- 「网络流 24 题」最小路径覆盖
- 「网络流 24 题」最小路径覆盖
- loj6002「网络流 24 题」最小路径覆盖(最小路径覆盖+二分图最大匹配)
- loj 6197. 法克 最小路径覆盖 好题
- 线性规划与网络流24题の3 最小路径覆盖问题(最小路径覆盖)
- 网络流24题3最小路径覆盖问题(洛谷 P2764 最小路径覆盖问题)
- 【loj】#6008. 「网络流 24 题」餐巾计划(最小费用流)
- 【loj】#6011. 「网络流 24 题」运输问题(最小费用流)
- loj6003「网络流 24 题」魔术球(最小路径覆盖/打表贪心)
- loj6002网络流 24 题 最小路径覆盖 最大流
- [网络流24题 #3]最小路径覆盖问题
- [网络流24题] 最小路径覆盖问题
- kyeremal-网络流24题T3-最小路径覆盖问题
- linux里如何查看文件大小
- 从 Windows 到 Linux: 艰难迈出第一步
- option stateSaveParams 状态数据保存操作回调函数
- 软件比较
- Java 异常
- [Loj]#6002. 「网络流 24 题」最小路径覆盖
- option stateSaveCallback 定义表格状态怎样、在哪里存储
- MOM初窥:AcitveMQ HelloWorld
- C语言问题笔记(私用)
- Poedu_Python_Lesson002_基础语法_数据类型
- 【大数据部落】电信公司churn数据客户流失knn预测分析(二)
- python导入第三方库
- PyQt4入门教程(2)_PyQt4的第一个程序
- 223. Rectangle Area