https://loj.ac/problem/10092 题目描述 给出一张图,定义图的半连通子图为点集S中任意两点u、v都存在一条u到v的简单路径或v到u的简单路径,求这张图的最大半连通子图的节点数和个数。 思路 首先显然一个强连通子图一定是半连通子图,所以我们可以先进行缩点,这样并不影响结果的判 ...
分类:
其他好文 时间:
2019-10-23 20:36:58
阅读次数:
126
传送门 好好读题 读懂了题后就不难了 可以发现和强联通分量的定义有点像 强连通的要求:对于任意两点u,v都存在一条路径使得 u->v 并且 v->u 而半联通的要求:对于任意两点u,v都存在一条路径使得 u->v 或者 v->u 那么显然一个强联通分量肯定属于半联通子图 那先考虑缩点,看看缩点后的情 ...
分类:
其他好文 时间:
2018-09-27 14:17:11
阅读次数:
152
传送门 题目简单来说就是给一个有向图,将图转化为DAG图后,求图中最长链及最长链的个数。 思路 用 tarjan 缩点重构将原图转换为一个有向无环图,让后在新图上跑 topo 求出最长链。 最长链的个数可以用动态规划,设 e[ i ] 表示新图中以 i 为终点的方案数,那么 e[ i ] 就等于连到 ...
分类:
其他好文 时间:
2018-09-26 20:44:35
阅读次数:
181
"题目链接" Solution 大概是个裸题. 可以考虑到,如果原图是一个有向无环图,那么其最大半联通子图就是最长的一条路. 于是直接 $Tarjan$ 缩完点之后跑拓扑序 DP就好了. 同时由于是拓扑序DP,要去掉所有的重边. Code cpp include define ll long lon ...
分类:
编程语言 时间:
2018-09-07 20:44:38
阅读次数:
210
[ZJOI2007]最大半连通子图 题目大意: 一个有向图称为半连通的,当且仅当对于任意两点$u,v$,都满足$u$能到达$v$或者$v$能到达$u$。 给定一个$n(n\le10^5)$个点,$m(m\le10^6)$条边的有向图, 问该图最大半连通子图的节点个数及方案数。 思路: 缩点后在DAG ...
分类:
其他好文 时间:
2018-08-05 11:03:42
阅读次数:
167
先tarjan缩成DAG,然后答案就变成了最长链,dp的同时计数即可 就是题面太唬人了,没反应过来 ...
分类:
编程语言 时间:
2018-07-31 21:37:45
阅读次数:
129
T1 受欢迎的牛 bzoj 1051 题解链接 T2 最大半连通子图 bzoj 1093 题目大意: 一个半连通的图定义为对任意点对u v 存在路径u->v或v->u 求给定图的最大半连通子图 思路: 可以知道 半连通子图一定为强连通分量缩点之后的链 所以只需要求一个最长链然后记一下方案数 需要注意 ...
分类:
其他好文 时间:
2018-07-26 18:41:04
阅读次数:
154
思维难度不大,关键考代码实现能力。一些细节还是很妙的。 Description 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:?u,v∈V,满足u→v或v→u,即对于图中任意两点u,v,存在一条u到v的有向路径或者从v到u的有向路径。若G'=(V',E')满足V'? ...
分类:
编程语言 时间:
2018-07-04 21:38:49
阅读次数:
167
1093: [ZJOI2007]最大半连通子图 Description 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:?u,v∈V,满足u→v或v→u,即对于图中任意 两点u,v,存在一条u到v的有向路径或者从v到u的有向路径。若G'=(V',E')满足V'?V,E ...
分类:
其他好文 时间:
2017-11-03 20:14:53
阅读次数:
153