有向图强联通分量
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
AcWing 368. 银河
解题报告:这题其实可以差分约束做。但是spfa跑太慢了,我们今天来讲一个线性的做法,tarjan,因为图中没有负点,如果图中存在正环就说明存在和为正数的强联通分量,然后最后问的所有亮度和,可以求出每个连通分量的个数再乘以亮度,亮度可以跑在长路,按照拓扑序的做法。#include<iostream>#include<cstring>#include<algori...原创 2020-05-05 18:10:45 · 250 阅读 · 0 评论 -
最大半连通子图
解题思路:只要找一个最长的链,因为不需要两个点互相到达,只需要一个点能到另一个点就行了,但是这条链不能分叉,先tarjan,缩点,建新图,然后用递推思想,从ssc_cnt开始递减,按照拓扑序做,g[]数组代表以i点为终点的方案数,f[]数组代表以i为终点集合中点的数量。如果f[k]<f[i]+size[k]g[k]=g[i],更新f[k],如果相等g方案数相加就行了。#include&l...原创 2020-05-05 18:06:57 · 499 阅读 · 0 评论 -
学校网络
题目大致意思:给定一个图,问最少激活多少个点可以遍历整个图,至少加几条边可以让每个点都能到达任何点(成为一个大连通分量)。第一个问题很简单,只要让入度为0的起点都激活,肯定能遍历所有点,第二个答案是max(起点个数,终点个数),类似于这样,记录规律就行了。。#include<iostream>#include<algorithm>#include<cstd...原创 2020-05-05 18:03:14 · 351 阅读 · 0 评论 -
174. 受欢迎的牛
当一头牛的出度为0他一定是受欢迎的牛。#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=10010,M=50010;int h[N],ne[M],e[M],idx;int s[N],dfn[N],low[N],timesta...原创 2020-05-05 17:57:10 · 268 阅读 · 0 评论