hdu2236 无题II (二分+最大匹配)
2013-09-06 20:07
211 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2236
#include <stdio.h>
#include <string.h>
#define MAXN 102
int mp[MAXN][MAXN];
int from[MAXN],used[MAXN];
int mid,n,ptr;
int match(int x)//匈牙利算法
{
int i;
for(i=0;i<n;++i)
{
if(!used[i]&&mp[x][i]>=ptr&&mp[x][i]<=ptr+mid)
{
used[i]=1;
if(from[i]==-1||match(from[i]))
{
from[i]=x;
return 1;
}
}
}
return 0;
}
int hungary()
{
int i;
memset(from,-1,sizeof(from));
for(i=0;i<n;++i)
{
memset(used,0,sizeof(used));
if(!match(i))
return 0;
}
return 1;
}
int main()
{
int test,i,j,Max,Min,MAX,MIN,flag;
scanf("%d",&test);
while(test--)
{
scanf("%d",&n);
Min=110,Max=-10;
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
scanf("%d",&mp[i][j]);
Min=Min>mp[i][j]?mp[i][j]:Min;
Max=Max<mp[i][j]?mp[i][j]:Max;
}
}
MAX=Max-Min;
MIN=0;
while(1)
{
flag=0;
mid=(MIN+MAX)>>1;
for(ptr=Min;ptr+mid<=Max;ptr++)
{
if(hungary())
{
flag=1;
break;
}
}
if(MIN==mid)
break;
if(flag)
MAX=mid;
else
MIN=mid;
}
printf("%d\n",MAX);
}
}
#include <stdio.h>
#include <string.h>
#define MAXN 102
int mp[MAXN][MAXN];
int from[MAXN],used[MAXN];
int mid,n,ptr;
int match(int x)//匈牙利算法
{
int i;
for(i=0;i<n;++i)
{
if(!used[i]&&mp[x][i]>=ptr&&mp[x][i]<=ptr+mid)
{
used[i]=1;
if(from[i]==-1||match(from[i]))
{
from[i]=x;
return 1;
}
}
}
return 0;
}
int hungary()
{
int i;
memset(from,-1,sizeof(from));
for(i=0;i<n;++i)
{
memset(used,0,sizeof(used));
if(!match(i))
return 0;
}
return 1;
}
int main()
{
int test,i,j,Max,Min,MAX,MIN,flag;
scanf("%d",&test);
while(test--)
{
scanf("%d",&n);
Min=110,Max=-10;
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
scanf("%d",&mp[i][j]);
Min=Min>mp[i][j]?mp[i][j]:Min;
Max=Max<mp[i][j]?mp[i][j]:Max;
}
}
MAX=Max-Min;
MIN=0;
while(1)
{
flag=0;
mid=(MIN+MAX)>>1;
for(ptr=Min;ptr+mid<=Max;ptr++)
{
if(hungary())
{
flag=1;
break;
}
}
if(MIN==mid)
break;
if(flag)
MAX=mid;
else
MIN=mid;
}
printf("%d\n",MAX);
}
}
相关文章推荐
- HDU 2236 无题II 二分+最大匹配
- HDU 2236 无题II【二分+最大匹配】
- hdu 无题II 二分+枚举+最大匹配
- HDU3081-并查集+最大二分匹配
- Gopher II 二分最大匹配基础题
- 最大二分匹配(匈牙利算法)
- POJ 2771 Guardian of Decency(二分匹配,最大独立集)
- poj 2594 Treasure Exploration(最小路径覆盖/二分最大匹配)
- The Accomodation of Students HDU - 2444(最大二分匹配+染色法判断二分图)
- POJ 1274 The Perfect Stall 二分匹配||最大流(简单题)
- hdu1068Girls and Boys(二分匹配,最大独立集)
- 【二分图匹配】最大二分匹配——匈牙利算法
- hdu3829 二分匹配 最大独立集
- 二分匹配,最大流,匈牙利图形解释及证明
- HDU 2819 Swap (最大二分匹配+输出路径)
- 为什么二分图的最大二分匹配数等于最小点覆盖数
- 【网络流】最大流:求最小割值、求(边)不交路径数量、求二分匹配最大匹配数
- 最大流 & 二分匹配模板
- hdu 1068 Girls and Boys(最大独立集,二分匹配)
- HDU 2236 无题II(二分匹配模板题,匈牙利算法)