hdoj1281二分匹配查看是否为关键位置
来源:互联网 发布:php curl 头部 编辑:程序博客网 时间:2024/06/14 17:27
#include <stdio.h>#include <string.h>#include <iostream>using namespace std;#define MAX_N 105static int G[MAX_N][MAX_N];static int n,m;static int match[MAX_N];static int used[MAX_N];//有向图的匹配方式static bool dfs(int v){//匹配列数for (int i=1;i<=m;++i){if (!used[i]&&G[v][i]){used[i] = 1;if (match[i]==-1||dfs(match[i])){match[i] = v;return true;}}}return false;}static int solve(){int res= 0 ;memset(match,-1,sizeof(match));for (int i=1;i<=n;++i){memset(used,0,sizeof(used));if (dfs(i)) res++;}return res;}int main(){int k;int ncase = 1;while(~scanf("%d %d %d",&n,&m,&k)){int u,v;memset(G,0,sizeof(G));for (int i=1;i<=k;++i){scanf("%d %d",&u,&v);G[u][v] = 1;}int ans2 = solve();//最后最大匹配数目//求解关键位置int ans = 0;for (int i=1;i<=n;++i){for (int j=1;j<=m;++j){int temp;if (G[i][j])//看是否是关键位置{G[i][j]= 0;temp = solve();if (temp<ans2) ans++;G[i][j] = 1;}}}printf("Board %d have %d important blanks for %d chessmen.\n",ncase,ans,ans2);ncase++;}return 0;}
0 0
- hdoj1281二分匹配查看是否为关键位置
- HDU 1281 棋盘游戏 (二分图+枚举每点是否为匹配关键)
- hdu1281二分匹配关键边
- hdu1281二分匹配关键边
- 二分图匹配 关键部分
- HDU 2444 The Accomodation of Students 判断是否为二分图,二分图的最大匹配
- hdu2444 二分图的匹配,先判断是否为二分图
- 二分图匹配 判断是否为二分图 —— 模板
- HDU 2444 The Accomodation of Students 判断是否为二分匹配+求最大匹配数
- HDU1281 【最大二分图匹配+关键路径】
- HDU-1281-棋盘游戏 [二分匹配][关键匹配]
- hdu2444The Accomodation of Students (最大匹配+判断是否为二分图)
- hdu 2444 The Accomodation of Students 判断是否为二分图+最大匹配
- HDU 2444 The Accomodation of Students(判断是否为二分图+最大匹配)
- HDU 2444 The Accomodation of Students (二分图匹配+匈牙利算法+bfs判断是否为二分图)
- 判断是否为二分图
- 判断是否为二分图
- POJ 1486 Sorting Slides(二分图最大匹配:关键边)
- C# Enum,Int,String的互相转换 枚举转换
- 关于 UITextField 和 键盘 的通知、代理调用顺序
- 关于机器学习
- 图片缓存技术
- Java Map的四种遍历方式
- hdoj1281二分匹配查看是否为关键位置
- 求最小公倍数(java)
- 人脸识别技术大总结——Face Detection & Alignment
- win7下安装vs.net 2005遇到的困难解决
- CSS学习笔记(5)
- Android性能优化典范(三)
- C++笔记(1)explicit构造函数
- 使用weibo4j中JSON入门
- (4)信号槽使用规则