传送门:点击打开链接
题意:给n个点和M条有向边,要找出许多个环出来,每个环点至少有2个,所有的点都要被环覆盖1次,且只能为1次。问所有环的长度之和
这题也可以用KM来做,这里主要是练习费用流的建图
对于这题,建图也是非常的奇妙的
由于每个点的入度都是1,出度都是1
所以会想到把每个点拆分成2个点,用i和i+n来表示
然后将源点与所有的i连接起来,将汇点与所有的i+n连...
分类:
其他好文 时间:
2015-08-18 22:50:17
阅读次数:
121
//给一个有向图,
//找出若干环,使得这些环覆盖所有点且每个点只能在一个环中
//问所得的所有环的所有边权值之和的最小值为多少
//对于每一个点只有一个入度和一个出度,那么将每个点拆成
//入度点和出度点,将所有入度点和所有出度点构成一个完备匹配
//由于是完备匹配,所以每个点的出度和入度都有一个不是自己的点
//相连,那么将完备匹配的所有点连接起来一定是若干环
//所得完备匹配的最小匹配即为答...
分类:
编程语言 时间:
2015-08-17 17:25:47
阅读次数:
194
//给一个n*m的图,
//m表示人,h表示房子
//问所有人走回家的最小步数
//每个人只能进一间房
//很明显的最大带权匹配
//每个人到每每间房的距离即为权值
//由于是求最小,只要改为负权就行
#include
#include
#include
#include
#include
using namespace std ;
const int maxn = 110 ;
const int...
分类:
编程语言 时间:
2015-08-17 15:43:48
阅读次数:
181
A - 奔小康赚大钱
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
Submit Status
Description
传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子。
这可是一件大事,关系到人民的住房问题啊。村里共有n间房间...
分类:
编程语言 时间:
2015-08-17 12:01:13
阅读次数:
136
题意:目前有一部分可用内存,分为m个大小固定的区域。现有n个程序要执行,每个程序在不同大小的内存中运行所需的时间不同,要使运行完所有程序所耗时最少,问每个程序在哪块区域中从什么时间运行到什么时间,以及运行完所有程序的平均周转时间。思路:各种记录有点麻烦! m个区域看成m台内存大小为该区域大小的计算....
分类:
编程语言 时间:
2015-08-16 13:47:30
阅读次数:
131
题意:给一个n*n的矩阵,每个格子中有正整数w[i][j],试为每行和每列分别确定一个数字row[i]和col[i],使得任意格子w[i][j]=g[i][j]再求最大权和匹配的,但这个最大权和并没有关系。我们可以将row[i]看成一个男的,col[i]看成一个女的,这样男女的总数就相等。一般来说,...
分类:
编程语言 时间:
2015-08-12 13:09:41
阅读次数:
352
HDU 2255 奔小康赚大钱(二分匹配之KM算法)...
分类:
编程语言 时间:
2015-08-10 22:13:28
阅读次数:
144
网上一堆人写KM算法,还没搜出哪个讲得比较好的。 KM算法大概过程: (1)初始化Lx数组为该boy的一条权值最大的出边。初始化Ly数组为 0。 (2)对于每个boy,用DFS为其找到一个girl对象,顺路记录下S和T集,并更新每个girl的slack值。若不能为其找到对象,则转3。 (...
分类:
编程语言 时间:
2015-08-10 21:59:12
阅读次数:
207
题目:Given any positive integer N, you are supposed to find all of its prime factors, and write them in the format N = p1^k1 * p2^k2 *...*pm^km.输入描述:Eac...
分类:
其他好文 时间:
2015-08-10 21:47:15
阅读次数:
170
Description:On a grid map there are n little men and n houses. In each unit time, every little man can move one unit step, either horizontally, or ver...
分类:
其他好文 时间:
2015-08-10 16:08:27
阅读次数:
136