图论
希望自己多坚持坚持
开学了8
go on
展开
-
学校网络 (tarjan)
题目一:对于环的存在,只要换上的一个学校获得软件,那么整个环都会获得软件,可以使用tarjan对连通分量进行缩点,此时得到一个有向无环图,入度为0的点的数量就是答案。 题目二:设入度为0的点数量是a,出度为0的点数量是b,那么答案是max(a, b); #include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define lowbit(x) (x&-x) #define pf(a)原创 2021-05-22 14:20:04 · 98 阅读 · 0 评论 -
最受欢迎的牛(targan)
如果是一个拓扑图,存在最受欢迎的牛 等价于 只有一个出度为0的节点。 如果不是一个拓扑图,需要使用tarjan算法进行缩点,最后符合条件的点的强连通分量即使答案。 #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int stk[N], top; int e[N], ne[N], h[N], idx; int dfn[N], low[N], id[N], ins[N], Time, cnt; int dou原创 2022-03-21 23:14:21 · 376 阅读 · 0 评论 -
招募军队 (超级源点)
超级源点+最大/最小生成树 招募军队 #include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define lowbit(x) (x&-x) #define pf(a) printf("%d\n",a) #define mem(x,y) memset(x,y,sizeof(x)) #define dbg(x) cout << #x << " = " <原创 2022-03-15 11:24:34 · 142 阅读 · 0 评论 -
图的初步认识
DAG:有向无环图 从顶点 iii 到顶点jjj存在边,且i<ji < ji<j 时,编排方式叫拓扑序 邻接表:稀疏图浪费空间,节省时间 邻接矩阵:邻接表占用少量内存,但每次查询需要遍历一遍表! std::vector<int> G; int main() { int V, E; scanf("%d %d",&V, &E); for (int i = 0; i < V; ++i) { int s, t;原创 2021-06-25 22:20:25 · 53 阅读 · 0 评论 -
Group Project(二分图)
https://ac.nowcoder.com/acm/contest/13926/F 二分图,先挖个坑原创 2021-05-07 22:29:41 · 80 阅读 · 0 评论