hdu_3605 Escape 二分图的多重匹配 匈牙利算法
来源:互联网 发布:win10平板软件下载 编辑:程序博客网 时间:2024/05/23 19:17
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define N 100001int n,m;int limit[11];int g[N][11];int linker[11][N];bool vis[11];int cnt[11];bool dfs(int u){for(int v=1;v<=m;v++){if(!vis[v]&&g[u][v]){vis[v]=1;if(cnt[v]+1<=limit[v]){linker[v][++cnt[v]]=u;return true;}else {for(int j=1;j<=cnt[v];j++){if(dfs(linker[v][j])){linker[v][j]=u;return true;}}}}}return false;}int hungary(){int ans=0;memset(linker,-1,sizeof(linker));memset(cnt,0,sizeof(cnt));for(int i=1;i<=n;i++){memset(vis,0,sizeof(vis));if(!dfs(i)) return 0;//只要有一个不行就行了,不然会超时}return 1;}int main(){while(scanf("%d%d",&n,&m)!=EOF){memset(g,0,sizeof(g));for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)scanf("%d",&g[i][j]);}for(int i=1;i<=m;i++)scanf("%d",&limit[i]);int ans=hungary();if(ans==1) printf("YES\n");else printf("NO\n");}return 0;}
各种超时。。。。。
结果发现C++过了,G++一直超时。。。。
这题也可以将每个容量变成一个新的点,转化成一般的二分图匹配,估计会超时。。。
这题用最大流同样可以求解。
- hdu_3605 Escape 二分图的多重匹配 匈牙利算法
- hdu 3605 Escape 二分图的多重匹配(匈牙利算法)
- 匈牙利算法,二分图最大匹配、多重匹配模板
- HDU 3605 Escape (二分图的多重匹配)
- hdu 3605 Escape (二分图的多重匹配)
- hdu3605—Escape(二分图的多重匹配)
- HDOJ 3605 - Escape 二分图多重匹配
- hdu 3605 Escape (二分图多重匹配)
- hdu 3605 Escape【二分图多重匹配】
- HDU 3605 Escape【二分图多重匹配】
- 匈牙利算法 (二分图的最大匹配)
- [zz] 二分图匹配的匈牙利算法
- 二分图最大匹配的匈牙利算法
- 二分图最大匹配的匈牙利算法
- 二分图的最大匹配 (匈牙利算法)
- 二分图的最大匹配 匈牙利算法
- 二分图的最大匹配(匈牙利算法)
- 二分图的最大匹配:匈牙利算法
- 中缀表达式的值
- FreeImage+openGL
- 湖南省赛2010
- 乘法密码加密算法
- 博客牛人
- hdu_3605 Escape 二分图的多重匹配 匈牙利算法
- Windows Server 2012 R2超级虚拟化之五 利用Shared VHDX创建虚拟机群集
- Java 中类加载的方式
- 张孝祥整理Java面试题
- asp.net里导出excel表方法汇总
- 住院中看不惯的一件事
- 凯撒加密算法简化
- 基于Qt的局域网聊天软件
- 七夕汇编小礼物