#include <iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<climits>
using namespace std;
int g[505][505];
int dx[505],dy[505];
bool vx[505], vy[505];
int dis[505]; int n, x, y;
int res, minn;
bool find(int u)
{
vx[u] = true;
for(int i=1;i<=n;i++)
{
if(!vy[i] && g[u][i]==dx[u]+dy[i])
{
vy[i] = true;
if(dis[i]==-1 || find(dis[i]))
{
dis[i] = u;
return true;
}
}
}
return false;
} int solve()
{
memset(dx,0,sizeof(dx));
memset(dy,0,sizeof(dy));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
dx[i] = max(dx[i], g[i][j]);
}
}
for(int i=1;i<=n;i++)
{
while(1)
{
minn = INT_MAX;
memset(vx,false,sizeof(vx));
memset(vy,false,sizeof(vy));
if(find(i)) break;
else
{
for(int j=1;j<=n;j++)
{
if(vx[j])
{
for(int k=1;k<=n;k++)
{
if(!vy[k] && dx[j] + dy[k] - g[j][k]<minn)
{
minn = dx[j] + dy[k] - g[j][k];
}
}
}
}
for(int j=1;j<=n;j++)
{
if(vx[j]) dx[j]-=minn;
if(vy[j]) dy[j]+=minn;
}
} }
}
return 0;
} int main()
{
while(scanf("%d",&n)!=EOF)
{ memset(g,0,sizeof(g));
memset(dis,-1,sizeof(dis));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
scanf("%d",&g[i][j]);
}
} res = 0;
solve();
for(int i=1;i<=n;i++)
{
if(dis[i]>0) res+=(dx[dis[i]]+dy[i]);
}
printf("%d\n",res);
}
return 0;
}

我也是醉了,找了一天的BUG

版权声明:本文为博主原创文章,未经博主允许不得转载。

二分图匹配(KM算法)n^4 分类: ACM TYPE 2014-10-04 11:36 88人阅读 评论(0) 收藏的更多相关文章

  1. 8大排序算法图文讲解 分类: B10_计算机基础 2014-08-18 15:36 243人阅读 评论(0) 收藏

    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 常见的内部排序算法有:插入排序.希尔排序. ...

  2. 分类算法简介 分类: B10_计算机基础 2015-03-09 11:08 257人阅读 评论(0) 收藏

    一.决策树 决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序.无规则的实例中 推理出以决策树表示的分类规则.构造决策树的目的是找出属性和类别间的关系, ...

  3. MS SQLServer 批量附加数据库 分类: SQL Server 数据库 2015-07-13 11:12 30人阅读 评论(0) 收藏

    ************************************************************ * 标题:MS SQLServer 批量附加数据库 * 说明:请根据下面的注释 ...

  4. Makefile 入门与基本语法 分类: C/C++ ubuntu 2015-05-18 11:16 466人阅读 评论(0) 收藏

    在我看来,学会写简单的Makefile,阅读较复杂的makefile,是每一个Linux程序员都必须拥有的基本素质.Makefile可以自动识别哪些源文件被更改过,需要重新编译,那些不需要.从而节省大 ...

  5. Javascript图片预加载详解 分类: JavaScript HTML+CSS 2015-05-29 11:01 768人阅读 评论(0) 收藏

    预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...

  6. OC基础:内存(进阶):retain.copy.assign的实现原理 分类: ios学习 OC 2015-06-26 17:36 58人阅读 评论(0) 收藏

    遍历构造器的内存管理 a.遍历构造器方法内部使用autorelease释放对象 b.通过遍历构造器生成的对象.不用释放. 内存的管理总结 1.想占用某个对象的时候,要让它的引用计数器+1(retain ...

  7. Windows平台下解决Oracle12c使用PDB数据库创建SDE的问题 分类: oracle sde 2015-06-12 11:03 88人阅读 评论(0) 收藏

    Windows平台下解决Oracle12c使用PDB数据库创建SDE的问题 Oracle 12C中引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant ...

  8. Hadoop文件的基本操作 分类: A1_HADOOP 2014-12-05 11:36 392人阅读 评论(0) 收藏

    Hadoop提供了大量的API对文件系统中的文件进行操作,主要包括: (1)读取文件 (2)写文件 (3)读取文件属性 (4)列出文件 (5)删除文件 1、读取文件 以下示例中,将hdfs中的一个文件 ...

  9. javascript的全局变量 分类: C1_HTML/JS/JQUERY 2014-08-07 11:03 562人阅读 评论(0) 收藏

    javascipt是一门面向对象的编程语言.由于存在一些全局属性及全局函数,因此可以认为存在一个全局变量,这些全局属性及全局函数均是其属性或函数. 在js核心中,并没有定义一个具体的全局变量,因此,j ...

随机推荐

  1. 封装document.ready方法

    function $(fn){ if(document.addEventListener){ //W3C document.addEventListener('DOMContentLoaded',fu ...

  2. Modoer列表页性能分析及优化

    在 http://www.modoer.org/beijing/item/list-8 的页面中,会执行以下2个sql SELECT s.sid,pid,catid,domain,name,avgso ...

  3. Android Material Design:基于CoordinatorLayout实现向上滚动导航条ToolBar滚出、向下滚动导航条滚出

    activity_main.xml: <android.support.design.widget.CoordinatorLayout xmlns:android="http://sc ...

  4. Python学习之静态页面数据抓取

    1 页面信息抓取 定义getPage函数,根据传入的页码get到整个页面的html内容 getContent函数,通过正则匹配把页面中的表格部分的html内容取出 最后定义getData函数,同样是通 ...

  5. 枚举esum20160530

    关于枚举 常见定义形式,类似定义结构体,先定义枚举变量类型: typedef enum{ Bit_RESET = 0,   Bit_SET}BitAction; enum box{pencil,pen ...

  6. S3C2440 LCD驱动(FrameBuffer)实例开发<一>(转)

    1. 背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此学习LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示 ...

  7. 做自己的ORMapping Framework ---- 前序

    做一个应用系统,当然大多情况都会对数据库进行操作,什么样的model设计更加合理,怎样的数据库操作更有效率,什么样的额代码结构更好维护等等这些问题相信一定会困扰大多企业级系统开发的小伙伴们. 鉴于我正 ...

  8. 【转】IT领域技能图谱

  9. minihttp http://www.acme.com/software/mini_httpd/

    1.安装mini_httpd 1.1把下载的mini_httpd-1.19.tar.gz拷贝到根目录   1.2 解压tar -xvfzmini_httpd-1.19.tar.gz ,会在根目录产生一 ...

  10. openssl AES加密以及padding

    好习惯,先上代码再说事 加密 void AesEncrypt(unsigned char* pchIn, int nInLen, unsigned char *ciphertext, int & ...