链接:

http://acm.hdu.edu.cn/showproblem.php?pid=2255

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 550
#define INF 0x3f3f3f3f int n;
int G[N][N], lx[N], ly[N];//x集合的顶标
int visx[N], visy[N], s[N], used[N];//s是为了找d, visx[i]x中的i有没有被增广过 bool Find(int u)//增广路
{
visx[u] = ;
for(int i=; i<=n; i++)
{
if(!visy[i] && lx[u]+ly[i]==G[u][i])
{
visy[i]=;
if(!used[i] || Find(used[i]))
{
used[i] = u;
return true;
}
}
else
s[i] = min(s[i], lx[u]+ly[i]-G[u][i]);
}
return false;
} int KM()
{
memset(used, , sizeof(used));
memset(lx, , sizeof(lx));
memset(ly, , sizeof(ly)); for(int i=; i<=n; i++)
for(int j=; j<=n; j++)
lx[i] = max(lx[i], G[i][j]); for(int i=; i<=n; i++)
{
for(int j=; j<=n; j++)
s[j] = INF;
while()
{
memset(visx, , sizeof(visx));
memset(visy, , sizeof(visy)); if(Find(i))
break; int d = INF;
for(int j=; j<=n; j++)
if(!visy[j])
d = min(d, s[j]); for(int j=; j<=n; j++)
{
if(visx[j])
lx[j] -= d;
if(visy[j])
ly[j] += d;
}
}
} int res=;
for(int i=; i<=n; i++)
res += G[used[i]][i];
return res;
} int main()
{
while(scanf("%d", &n)!=EOF)
{
int i, j; memset(G, , sizeof(G));
for(i=; i<=n; i++)
for(j=; j<=n; j++)
scanf("%d", &G[i][j]); printf("%d\n", KM());
}
return ;
}

最新文章

  1. Virtual Box常用指令
  2. swift-sharesdk集成微信、Facebook第三方登录
  3. Hadoop入门进阶课程11--Sqoop介绍、安装与操作
  4. linux 配置 Samba 服务器实现文件共享
  5. 分享iOS最喜欢的技巧和提示
  6. 简单的ftpserver设置
  7. MFC应用程序向导生成的文件
  8. Android(java)学习笔记244:多媒体之SurfaceView
  9. RegularExpressionValidator控件
  10. 校验ISBN的方法
  11. Installing VirtualBox
  12. Scrum 冲刺 第一日
  13. Kubernetes之dashboard
  14. 【UOJ386】【UNR #3】鸽子固定器 链表
  15. 秒杀linux下系统调用fork()面试题(转)
  16. KeepAlive安装指南
  17. 运行纯PHP程序的时候,不应该加&quot;?&gt;&quot;结束语
  18. 在 mingw32 上编译 libvpx 1.7.0 时的注意事项
  19. hdu1506单调栈的宽度
  20. java中使用队列:java.util.Queue(转)

热门文章

  1. 常用类一一字符串相关类一一StringBuilder,StringBuffer。
  2. Unknown column in &#39;field list&#39;
  3. express中使用ejs
  4. tomcat发布webservice
  5. ccf认证模拟题之三---最大的矩形
  6. Django之ORM使用以及模板语言
  7. pyhon之函数参数
  8. 删除排序数组中的重复数字 II &#183; Remove Duplicates from Sorted Array II
  9. 关于jni调用报UnsatisfiedLinkError的可能
  10. Excel单元格内容批量加前缀