反建图,计算强连通分量,将每个分量看成一个点,缩点后的图是一个DAG,如果是一棵树,则根代表的连通分量的大小就是答案,否则答案为0.收获: 图的东西如果不好解决,可以尝试缩点(有向图将每个强连通分量看成一个点,无向图将每个双连通分量看成一个点),缩点之后图就变成DAG或无向无环连通图,原本没有的一....
分类:
其他好文 时间:
2015-02-25 23:35:22
阅读次数:
214
传送门:Caocao's Bridges题意:n个岛,曹操在一些岛之间建了一些桥,每个桥上有一些士兵把守,周瑜只有一个炸弹只能炸掉一个桥,并能使一些岛被孤立出来,炸弹需要士兵带过去,士兵的数量不能小于目标桥的守卫,求出最少要派出多少士兵。分析:题目很明显要找出边权最小的桥,但本题有几个坑:1)图若不...
分类:
其他好文 时间:
2015-02-08 23:09:54
阅读次数:
199
传送门:Redundant Paths题意:有n个牧场,Bessie 要从一个牧场到另一个牧场,要求至少要有2条独立的路可以走。现已有m条路,求至少要新建多少条路,使得任何两个牧场之间至少有两条独立的路。两条独立的路是指:没有公共边的路,但可以经过同一个中间顶点。分析:在同一个边双连通分量中,任意两...
分类:
其他好文 时间:
2015-02-08 14:04:27
阅读次数:
143
ppt:http://pan.baidu.com/s/1eQBzFqE
入门知识汇总:
经典DP: LIS LCS, 状态压缩DP 区间DP
图论:MST , 最短路三种算法(dijkstra , bellman ford, floyd ),最大流, 双连通分量(点双连通,边双连通,强连通)
数学:质因数分解,筛素数,数论的常用结论
数据结构: 线段树,树状数组,字典树,kmp,哈希,平...
分类:
其他好文 时间:
2015-02-02 15:56:13
阅读次数:
279
构造双连通图:一个有桥的连通图,如何把它通过加边变成边双连通图?一个有桥的连通图,如何把它通过加边变成边双连通图?方法为首先求出所有的桥,然后删除这些桥边,剩下的每个连通块都是一个双连通子图。把每个双连通子图收缩为一个顶点,再把桥边加回来,最后的这个图一定是一棵树,边连通度为1。统计出树中度为1的节...
分类:
其他好文 时间:
2015-01-19 22:29:19
阅读次数:
121
裸题只给模板。
tarjan可以实现。
太水不发题解。
代码:
#include
#include
#include
#include
#define N 1010
#define M 2020
using namespace std;
struct KSD
{
int v,next;
}e[M];
int head[N],cnt;
inline void add(int u,i...
分类:
其他好文 时间:
2015-01-13 10:42:59
阅读次数:
115
题意:求哪些点是割点,割掉以后能把图分成几块。
太水不欲发题解。
tarjan就好,不懂看代码。
代码:
#include
#include
#include
#include
#define N 1005
using namespace std;
int map[N][N];
bool exist[N];
int dfn[N],low[N],cnt;
int stk[N],top...
分类:
其他好文 时间:
2015-01-13 10:42:00
阅读次数:
162
比起双连通的Tarjan我倒是觉得反而简单多了。思想和双连通分量是同一个模式。
#include
#include
#include
#include
using namespace std;
const int N = 1e5;
int dfn[N], scc_id[N];
int deep, scc_cnt;
stack s;
int dfs(int u)
{
int ...
分类:
其他好文 时间:
2014-12-26 18:40:43
阅读次数:
172
这道题就是模板的题加上一道很水的树形dp
感觉就先用
1,双连通缩点,如果只存在一个双连通分量,那么肯定是删除任何一个点,这个图还是连通的,
2,利用树形dp把缩点后连成一个图,然后用树形dp的一个dfs就算出答案了
#include
#include
#include
#include
#include
#include
using namespace std;
#...
分类:
其他好文 时间:
2014-12-10 09:22:19
阅读次数:
189