自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 hdu 1269 迷宫城堡 强连通分量

强连通分量裸题#include#include#include#include#includeusing namespace std;const int maxn = 10000 + 10;vector G[maxn], G2[maxn];vector S;int vis[maxn], sccno[maxn], scc_cnt;void dfs1(int u) {

2013-11-29 21:17:07 575

原创 hdu 1829 A Bug's Life

题目大意:给出一些虫子之间的关系,看是否有同性恋。对于任意两个虫子,若有关系则在这两个节点之间连边,如果有同性恋,则肯定会有奇数步的回路,若没有,则不存在同性恋。(二分图的判定)#include #include using namespace std;#define maxn 2010int color[maxn];queue Que;vector g[maxn];bo

2013-11-27 21:38:48 533

原创 hdu 1054 Strategic Game 树上的点覆盖集

题目即求树上的点覆盖数。对于一个图的点覆盖集,都不存在多项式内的解法,但如果是树的话,却挺容易,有三种方法,第一个是贪心,第二个是树形dp,第三个是二分图匹配(树是一个二分图),我是用贪心做的,先深度优先遍历一遍得到遍历序列,将遍历序列反向(即后序遍历序列)进行贪心,这样可以保证对于每个节点来说,当其子树都被处理过后才轮到该节点,保证了贪心的正确性,贪心思路为:若当前点和当前点的父节点都不属于

2013-11-18 23:43:08 813

转载 扩展kmp

出自http://www.cppblog.com/MatoNo1/archive/2011/04/17/144390.aspx扩展KMP:给出模板串A和子串B,长度分别为lenA和lenB,要求在线性时间内,对于每个A[i](0【算法】设next[i]为满足B[i..i+z-1]==B[0..z-1]的最大的z值(也就是B的自身匹配)。设目前next[0..lenB-1]与ex[0..

2013-11-16 23:33:16 515

转载 KM算法 详解+模板 出自http://blog.sina.com.cn/s/blog_691ce2b701016reh.html

先说KM算法求二分图的最佳匹配思想,再详讲KM的实现。【KM算法求二分图的最佳匹配思想】对于具有二部划分( V1, V2 )的加权完全二分图,其中 V1= { x1, x2, x3, ... , xn }, V2= { y1, y2, y3, ... , yn },边具有权值 Wi,j 。该带权二分图中一个总权值最大的完美匹配,称之为最佳匹配。 记 L(x) 表示结点 x

2013-11-16 23:27:44 759

原创 hdu 1358 Period KMP

题目大意:对于一个字符串,找由循环字符串组成的位置,并输出最多循环了几次,比如两个样例,第一个是 aaa ,所以在第二个位置由子串a循环两次得到,第三个位置由a循环3次,第二个样例aabaabaabaab,在第二个位置由a循环两次,在第六个位置由aab循环两次,在第9个位置由aab循环3次,在第12个位置由aab循环4次,注意,在第12个位置不是由aabaab循环2次,因为要求循环次数最多。k

2013-11-15 21:06:06 505

原创 hdu 2458 Kindergarten 匹配

题目大意:幼儿园中所有的男孩之间都互相认识,所有的女孩都互相认识,男孩和女孩之间有一部分互相认识,求一个最大完全子图(最大团),即去一些顶点,使得他们之间都互相认识,并使取出的节点数最多。男孩和女孩本身就是完全子图,将女孩看成一个集合,男孩看成一个集合,不能直接选择认识关系作为边集(因为这样不符合二分图定义),所以选认识关系的补集作为边集,即在不认识的人之间连边,则最大完全子图即即对应最大点独

2013-11-12 23:06:24 732

原创 zoj 1525 Air Raid 有向无环图的最小路径覆盖(匹配)

题目大意:先解释有向无环图的路径覆盖,在图中找一些不相交的简单路径,使之覆盖图中所有顶点,且每一顶点只有一条路径与之关联,也就是说,若沿着这些路径中每条路径从起点走到终点,则可以恰好经过图中每一个顶点一次且仅一次。该题是求最小路径覆盖,即使得路径条数最小。题中的限制在顶点,将图转换为二分图,每个顶点v拆为v*和v**,若在图中存在从u到v的有向边,则在二分图中连接一条从u*到v**的边。则有公

2013-11-12 13:32:41 574

原创 poj 3041 Asteroids 点覆盖(匹配)

在一个n*n网格上有一些小行星,一发子弹可以摧毁一行或一列的小行星,问最少需要多少发子弹可以摧毁全部小行星。建立行与列的二分图,若第 i 行第 j 列有小行星则在 xi 与 yj 间连一条边,对于每一条边的两个顶点必须至少有一个被选择,即最小点覆盖, 由konig定理,点覆盖数等于匹配数,所以用匈牙利算法即可。#include #include #define N 500int

2013-11-11 23:33:02 665

转载 偏序集的Dilworth定理学习 (转载)

转自http://3214668848.blog.163.com/blog/static/48764919200991885836429/ 导弹拦截是一个经典问题:求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列。第一问是经典动态规划,第二问直接的方法是最小路径覆盖, 但是二分图匹配的复杂度较高,我们可以将其转化成求最长上升子序列,其最大值即等于不上升子序列的最小划分数

2013-11-11 23:18:03 1060

转载 链-反链-Dilworth定理 (转载)

转自http://www.cnblogs.com/fstang/archive/2013/03/31/2991220.html偏序集:We define a Partially Ordered Set, or a Poset, as a set P with a partial ordering  defined on it’s elements. I.e, for any two elem

2013-11-11 23:16:18 3200

原创 hdu 1565 方格取数(1) 最大点权独立集 网络流

题目是中文的~对于网格这种图是一个典型的二分图(只要无奇数长度的回路的图就是二分图),先建立二分图,对于第 i 行第 j 列的点,i + j 为偶数的归为 x 集合,为奇数的归为 y 集合,相邻格子间连边,这就完成了二分图的构建。题目要求取出来的值最大,且不能相邻,所以每一个点独立集都符合不相邻的要求,现在要使独立集的点权和最大,因为点独立集和点覆盖集是对应的,具体说一个图去掉任意一个点独

2013-11-08 21:53:42 670

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除