03 2015 档案

摘要:转载自这里 给你一个N个顶点M条边的带权有向图,要你把该图分成一个或多个不相交的有向环。且所有定点都被有向环覆盖。问你该有向环所有权值的总和最小是多少? 答案就是:有向环最大权值覆盖=最优匹配。 如果,改为无向图,问你无向环最大权值覆盖?答案也是一样的。只是在建图的时候把有向改为无向即可。分... 阅读全文
posted @ 2015-03-30 22:54 无道圣君 阅读(1079) 评论(0) 推荐(0)
摘要:原文转载自大牛,略有改动 KM算法是用来求完备匹配下的最大权匹配:在一个二分图内,左顶点为X,右顶点为Y,现对于每组左右连接有权Wij,求一种匹配使得所有Wij的和最大-------即最佳匹配。 记 L(x) 表示结点 x 的标记量,如果对于二部图中的任何边,都有 L(x)+ L(y)>... 阅读全文
posted @ 2015-03-29 18:58 无道圣君 阅读(757) 评论(0) 推荐(0)
摘要:本文转载自白话经典算法 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比... 阅读全文
posted @ 2015-03-29 14:34 无道圣君 阅读(149) 评论(0) 推荐(0)
摘要:原文:http://www.cnblogs.com/ws5167/p/3903970.html 树状数组主要用于快速的更改某个点的值和查询某个区间的和,是一种比较小巧的数据结构.先看下图: 假设数组A[]是我们要操作的对象,则数组C[]则是数组A[]相对应的树状数组.观察上图,我... 阅读全文
posted @ 2015-03-28 23:33 无道圣君 阅读(176) 评论(0) 推荐(0)
摘要:我们知道,要把一个非边双连通图构造成一个边双连通图,只需把这个图化简(边双连通分量缩点)成一个树,然后 找出叶子节点个数leaf,(leaf+1)/2就是要新添加的边数。 现在,对与有向图来说,我们需要求加最少的边,使得一个非强连通图变成一个强连通图,最少的边数是多少? 同样的,我们需要... 阅读全文
posted @ 2015-03-28 16:17 无道圣君 阅读(816) 评论(0) 推荐(0)
摘要:poj 2762 题意:任给一个图,问你对于任意的两个点x,y之间是否存在从x到y或从y到x的路径? 分析:这显然是要求图是否为单向连通图?我们可以对强连通分量进行缩点,缩点后的图一定是一个有向无环图; 现在,问题等价于给你一个有向无环图,问你它是否为单向连通图。这样,我们就可以对有向无环图进行... 阅读全文
posted @ 2015-03-28 13:05 无道圣君 阅读(846) 评论(0) 推荐(0)
摘要:首先,强连通分量可以缩点,所有缩点后的图一定是一个有向无环图,出度为0的点受其他出度不为0的点的仰慕.因为要求的是受其他所有点仰慕的点的个数(强连通内互相仰慕),所以,当只有一个出度为0的点时,输出它所在的强连通分量的顶点个数就是答案. 1 #include 2 #include 3 ... 阅读全文
posted @ 2015-03-27 23:44 无道圣君 阅读(154) 评论(0) 推荐(0)
摘要:边双连通分量:边连通度大于1的连通分量 在树中至少添加多少边能使得图变为边双连通图 ?添加的边=(叶子节点+1)/2. 在一个无向图中,我们可以把它的边双连通分量缩成一个点,然后一定会得到一颗树,然后按上述方法求叶节点即可。 1 #include 2 #include 3 #in... 阅读全文
posted @ 2015-03-26 23:57 无道圣君 阅读(431) 评论(0) 推荐(0)
摘要:割边:若在连通图中删除某条边,图不再连通,则删除的边为割边。 根据low[i],和dfn[i]的n定义,我们知道,若(u,v)是生成树的一条边,且low[v] > dfn[u],则(u,v)为割边------桥。 zoj 2588 题意:给n个顶点,m条边, 可能有重边。问你图中有几... 阅读全文
posted @ 2015-03-26 15:31 无道圣君 阅读(254) 评论(0) 推荐(0)
摘要:无向图的顶点连通度需要用到网络流来求,并且有以下定理;Mengerg定理: 无向图的顶点连通度K和顶点间的最大独立轨数目之间存在如下关系:① 当图为完全图时: k=V-1 (V表示图中顶点数)② 当图为非完全图h时: K=min{ P(A, B) | 任意不相邻的顶点AB }注意:如果AB相邻... 阅读全文
posted @ 2015-03-25 18:31 无道圣君 阅读(2027) 评论(0) 推荐(0)
摘要:两个字符数组可以用strcmp()比较大小。两个整数数组也有个函数memcmp()可以比较大小,和strcmp()的返回值一样的。 头文件#include / #include 函数原型:int memcmp(const void *s1, const void *s2, size_t n)... 阅读全文
posted @ 2015-03-19 15:52 无道圣君 阅读(2421) 评论(0) 推荐(0)
摘要:动态字典树每次都要new一个内存来操作,所以耗时也是较多的;所以我们可以先一次性开辟出足够的空间,然后模拟动态字典树的创建查找过程来写出相应的静态字典树。代码都差不多,主要是你得先学会了动态字典树;接下来的事情就是模拟了,,,模拟,,模拟。结构定义:struct Trie{ int... 阅读全文
posted @ 2015-03-13 14:41 无道圣君 阅读(335) 评论(0) 推荐(0)
摘要:本文转自于:http://www.cnblogs.com/tanky_woo/archive/2010/09/24/1833717.html代码部分有改动。 字典树: 又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),... 阅读全文
posted @ 2015-03-12 20:45 无道圣君 阅读(479) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 #include 4 #define _clr(x, y) memset(x, y, sizeof(x)) 5 #define Min(x, y) (x Q; 16 17 // 一般预流推进算法 --47ms 18 void... 阅读全文
posted @ 2015-03-03 17:16 无道圣君 阅读(158) 评论(0) 推荐(0)