HDOJ 1281 - 棋盘游戏 快两年没写二分图匹配了~回顾下匈牙利
来源:互联网 发布:华为哪里下载软件 编辑:程序博客网 时间:2024/06/07 23:29
题解:
真相是被splay和动态树虐跪了...刷写水题调整下郁闷得不行的心态.... 匈牙利算法我早忘了..二分图嘛~~不管是最大匹配还是最大匹配最小代价~什么匈牙利啊~KM啊都可以闪..有网络流就够了....话是什么说..但是匈牙利算法写起来还是比最简单的网络流的写法方便...效率也更高吧~~回顾下感觉不错~
本题..(x,y)配对~经典构图..找出最大匹配后..枚举去掉某个点.看是否最大匹配减少了...
Program:
#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<stack>#include<queue>#define ll long long#define MAXN 105using namespace std;int n,m,line[MAXN*MAXN][2],match[MAXN];bool arc[MAXN][MAXN],used[MAXN];bool dfs(int x){ int i; for (i=1;i<=m;i++) if (arc[x][i] && !used[i]) { used[i]=true; if (!match[i] || dfs(match[i])) { match[i]=x; return true; } } return false; }int getmax(){ int sum=0; memset(match,0,sizeof(match)); for (int i=1;i<=n;i++) { memset(used,false,sizeof(used)); sum+=dfs(i); } return sum;}int main(){ int i,k,cases,ans1,ans2; cases=0; while (~scanf("%d%d%d",&n,&m,&k)) { memset(arc,false,sizeof(arc)); for (i=1;i<=k;i++) { int x,y; scanf("%d%d",&x,&y); arc[x][y]=true,line[i][0]=x,line[i][1]=y; } ans2=getmax(),ans1=0; for (i=1;i<=k;i++) { int x=line[i][0],y=line[i][1]; arc[x][y]=false; int temp=getmax(); arc[x][y]=true; if (temp<ans2) ans1++; } printf("Board %d have %d important blanks for %d chessmen.\n",++cases,ans1,ans2); } return 0;}
- HDOJ 1281 - 棋盘游戏 快两年没写二分图匹配了~回顾下匈牙利
- HDU-1281 棋盘游戏 二分图匹配匈牙利算法
- hdu 1281 棋盘游戏 二分图匹配 匈牙利算法 暴力
- HDOJ 1281 棋盘游戏(二分图最大匹配)
- HDU 1281 棋盘游戏(匈牙利算法 二分最大匹配)
- HDU 1281 棋盘游戏 二分匹配 匈牙利算法
- HDU ACM 1281 棋盘游戏->二分图最大匹配(匈牙利算法实践)
- hdu 1281 棋盘游戏 二分图匹配 匈牙利算法 解题报告
- HDU 1281 棋盘游戏(二分图匹配+匈牙利算法+模拟)
- hdu 1281 棋盘游戏 二分图匹配
- hdu 1281 棋盘游戏 (二分图匹配)
- 【二分图匹配】hdu 1281 棋盘游戏
- 棋盘游戏 - HDU 1281 二分图匹配
- hdu 1281 棋盘游戏(二分图匹配)
- HDU 1281 棋盘游戏 二分图匹配
- hdu 1281 棋盘游戏 二分图匹配;
- HDOJ 题目1281 棋盘游戏(二分图最大匹配,删边)
- hdu 1281 棋盘游戏 二分图最大匹配
- java中equals方法的用法以及==的用法(转)
- SVM入门(九)松弛变量(续)
- 在aspx页面引用html页
- 抽象 接口 运用!简单例子--binbinyang
- Nginx具体的压缩配置
- HDOJ 1281 - 棋盘游戏 快两年没写二分图匹配了~回顾下匈牙利
- volatile关键字
- VC++线程总结
- 2014年华为南研所校园招聘---机试+面试
- FFmpeg and x264 Encoding
- 解决XCode编译错误clang: error: linker command failed with exit code 1
- VC 2010 Express下安装OpenCV2.4.3
- linux c程序中获取shell脚本输出
- 分页 视图和控制器