题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2730题意:煤矿工地可以看成是由隧道连接挖煤点 组成的无向图。为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处。于是矿主决定在某些挖煤点设立救援出口,使得无论哪一...
分类:
其他好文 时间:
2014-06-23 07:22:57
阅读次数:
303
Tarjan算法。1.若u为根,且度大于1,则为割点2.若u不为根,如果low[v]>=dfn[u],则u为割点(出现重边时可能导致等号,要判重边)3.若low[v]>dfn[u],则边(u,v)为桥(封死在子树内),不操作。求割点时,枚举所有与当前点u相连的点v:1.是重边: 忽略2.是树边: T...
分类:
其他好文 时间:
2014-06-15 11:46:09
阅读次数:
165
一、基本概念:1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。3.点连通度:最小割点集合中的顶点数。4.割边(桥):删掉它之后,图...
分类:
其他好文 时间:
2014-06-09 15:43:52
阅读次数:
344
求割点
const int maxn = 1010;
vector a[maxn], bcc[maxn];
int pre[maxn];
int low[maxn];
bool iscut[maxn];
int bccno[maxn];
int cnt[maxn];
int dfs_clock;
int bcc_cnt;
int n;
struct Edge
{
int u, v;
};...
分类:
其他好文 时间:
2014-06-08 05:54:36
阅读次数:
270
题目:给定两个串s1和s2,对s1串,我们可以将其分割成两部分,这两部分都不为空,而被分割成的两部分,又可以递归的进行分割,直到不能进行分割为止,也就是只有一个字符的时候,就不在分割了。问s2是否由s1的这种分割表示中,某步分割成的两部分交换得到的。这种交换可以在不同的分割点进行多次。
/* s1
|__________p____________| ...
分类:
其他好文 时间:
2014-06-05 11:09:06
阅读次数:
207
题目:这个题目里要求最多交易2次。也就是说可以只交易一次,不交易也可以。
分析:将整个交易序列分割成两部分,求出这样的一种分割,使得两部分连续子序列的和相加的结果最大,当然,如果不进行分割,就是求出整个序列的最大连续子序列的和。
那么分割点就可能是任意位置。找出取得最大值的分割点,返回最大值。
int maxProfit(vector &prices) {
const int le...
分类:
其他好文 时间:
2014-05-24 20:54:57
阅读次数:
402
题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量。
思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可。算法相对简单,但是注意几个细节:
1:原图可能不连通。
2:有的连通分量只有一个点,当舍去该点时候,连通分量-1;
复习求割点的好题!
#include
#include
#include
using namespace std;
i...
分类:
其他好文 时间:
2014-05-23 07:56:52
阅读次数:
317
仙人掌图(有向):同时满足:1强连通;2任何边不在俩个环中。
个人理解:其实就是环之间相连,两两只有一个公共点,(其实可以缩块),那个公共点是割点。HDU数据弱,网上很多错误代码和解法也可以过。
个人解法:
我认为:
:仙人掌图必然是欧拉图!这样只用“入度=出度”就可以简单地判断强连通(欧拉图显然强连通)了!而且这个必要(不充分)条件还秒杀好多数据(强连通++)。
个人证明...
分类:
其他好文 时间:
2014-05-03 21:38:39
阅读次数:
250
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=251
测模版:
#include
#include
#include
#include
#include
#include
using namespace std;
#define ...
分类:
其他好文 时间:
2014-04-29 13:31:21
阅读次数:
542