双连通总结
这类问题分为,边-双连通,点-双连通
边双连通
边双连通,求出来后,连接没一个双连通的分量的就是割边,因此可以缩点成一棵树,把问题转化为在树上搞,割边的定义为:去掉这条边后图将不连通
基本这类题都一个解法,求双连通分量,然后缩点成树,进行操作
或者就是直接要求割边,做跟割边相关的操作
模板:
#include
#include
#include...
分类:
其他好文 时间:
2014-10-28 21:41:45
阅读次数:
209
2-sat总结
2-sat问题,一般表现的形式为,每个点有两种方式a,b,要么选a,要么选b,并且点点之间有一些约束关系,例如:u和v至少一个选a,那么这就是一个表达式,把a当成真,b当成假,那就是u真或v真,2-sat的题目就是这样,给定这些约束,判断是否会矛盾
注意表达式的转化形式,(其实就是离散数学中那几种转换方式)
比如(u真且v真)或(u假且v假)就可以转化成(u真或v假)...
分类:
其他好文 时间:
2014-10-28 21:39:03
阅读次数:
291
深入解析最短路径算法正文 第一节 问题的提出及解决方法 所谓最短路径问题,能够说有两种情况来描写叙述。 描写叙述一:在图论中,指的是寻找图中两个节点之间的最短距离。例如以下图 描写叙述二:在现实生活中,指的是找到从一个地方到还有一个地方的近期距离。例如以下图 上述两种情况的本质是一样的,即求一个点到...
分类:
编程语言 时间:
2014-10-28 19:41:39
阅读次数:
316
北京赛区快了,准备突击数据结构和图论,倒计时 18天,线段树区间合并,维护一个最长连续。。
题意:给一个01串,下面有一些操作,问区间最长的连续的1的个数
思路:很裸的线段树区间合并
#include
#include
#include
#include
#include
#define lson id << 1
#define rson id << 1|1
using namespace ...
分类:
其他好文 时间:
2014-10-28 12:18:38
阅读次数:
143
题意:n(0
题目链接:http://poj.org/problem?id=2987
——>>炒一个人会该人的所有下级一起炒掉,这时存在依赖关系,对应图论中的闭合图。。最大收益对应最大权和。。于是,最大权闭合图上场。。
最少炒人数?如果获得最大收益的方案可能有多种吗?其实不然,假设方案一与方案二都获得最大收益,那么,可以两个方案中所炒的人都炒了,这时的收益肯定更大,说明方案一、二还不是最优...
分类:
其他好文 时间:
2014-10-28 02:06:57
阅读次数:
238
大学 4 年的计算机专业的生活快结束了,看完了大部分的书,还有一小部分没看完,记之。
看了比较杂,有些也不是很好分类。
>>>>>>>>>>>>>>>>>>>>>>>
道格拉斯 《图论导引》
王树禾《图论及其应用》
《有向图理论,算法及其应用》
《欧拉图理论》
《图论与代数结构》
《复杂网络理论及其应用》
《网络群体与市场》
>>>>>>>>>>>>>>>>...
分类:
其他好文 时间:
2014-10-28 00:54:22
阅读次数:
239
上面我们谈了在搜索引擎中,如何建立索引,这里,我们讲如何自动下载互联网上所有的网页,重点就是图论中的遍历算法。 1.图论和网络爬虫 遍历算法主要有两种,一种是深度优先遍历,一种是广度优先遍历。所谓深度优先遍历,就是从一个节点开始,一直沿着一条路走到底,直到没路了,再回过头去找别的路,再一路走...
分类:
其他好文 时间:
2014-10-27 22:54:08
阅读次数:
253
首先我们由一道题来引入,见[线性规划与网络流24题 2] 太空飞行计划问题。这道题中,实验依赖于仪器,而实验和仪器都有权值,且仪器为负,实验为正。这里闭合图的概念就很好引出了。在一个图中,我们选取一些点构成集合,记为V,且集合中的出边(即集合中的点的向外连出的弧),所指向的终点(弧头)也在V中,则我...
分类:
其他好文 时间:
2014-10-27 12:17:52
阅读次数:
695
题意
题目描述:
你知道多米诺骨牌除了用来玩多米诺骨牌游戏外,还有其他用途吗?多米诺骨牌游戏:取一 些多米诺骨牌,竖着排成连续的一行,两张骨牌之间只有很短的空隙。如果排列得很好,当你推 倒第 1张骨牌,会使其他骨牌连续地倒下(这就是短语“多米诺效应”的由来)。 然而当骨牌数量很少时,这种玩法就没多大意思了,所以一些人在 80 年代早期开创了另一个 极端的多米诺骨牌游戏:用上百万张不同颜色...
分类:
其他好文 时间:
2014-10-26 23:03:35
阅读次数:
591
题意 中文
入门最小生成树 prim大法好
#include
#include
using namespace std;
const int N = 105;
int cost[N], mat[N][N], n, m, ans;
void prim()
{
memset(cost, 0x3f, sizeof(cost));
cost[1] = -1;
int cur...
分类:
其他好文 时间:
2014-10-26 18:24:22
阅读次数:
139