摘要: poj 3692View Code 1 //POJ3692 2 //匈牙利算法,二分图的最大匹配 3 //最大完全数:最大完全子图中顶点的个数 最大完全数=原图的补图的最大独立数 4 5 #include <iostream> 6 #include <cstdio> 7 #include <cstring> 8 9 using namespace std;10 11 #define MAXN 21012 13 int nx,ny;14 bool vis[MAXN];15 int map[MAXN][MAXN];16 int link[MAXN];//第y个点 阅读全文
posted @ 2012-09-25 23:28 Missa 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://imlazy.ycool.com/post.1603708.html什么是二分图,什么是二分图的最大匹配,这些定义我就不讲了,网上随便都找得到。二分图的最大匹配有两种求法,第一种是最大流(我在此假设读者已有网络流的知识);第二种就是我现在要讲的匈牙利算法。这个算法说白了就是最大流的算法,但是它跟据二分图匹配这个问题的特点,把最大流算法做了简化,提高了效率。匈牙利算法其实很简单,但是网上搜不到什么说得清楚的文章。所以我决定要写一下。最大流算法的核心问题就是找增广路径(augment path)。匈牙利算法也不例外,它的基本模式就是:初始时最大匹配为空while 找得到增广 阅读全文
posted @ 2012-09-25 22:53 Missa 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个区间[l,r],要求sum(x-xi)(l<=i<=r)的最小值,其中x必须为xl,xl+1...xr中的一个数当x为[l,r]的中位数的时候,满足要求。求任意区间的中位数可以用划分树(k-number)来解决,同样的,我们用suml[d][i]来记录划分树中第d层到数i位置放入左子树的数字的和,具体见代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 using namespace std 阅读全文
posted @ 2012-09-25 22:06 Missa 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 1 //hdu 2665 2 #include <iostream> 3 #include <cstdio> 4 #include <algorithm> 5 #include <cstring> 6 7 using namespace std; 8 9 #define ls rt<<1 10 #define rs rt<<1|1 11 #define lson l,m,ls 12 #define rson m+1,r,rs 13 14 #define MAXN 100010 15 16 int len; 17 int s 阅读全文
posted @ 2012-09-25 12:31 Missa 阅读(203) 评论(0) 推荐(0) 编辑