【IOI 1996】 Network of Schools】的更多相关文章

[题目链接] 点击打开链接 [算法] 对于第一问,将这个图缩点,输出出度为零的点的个数 对于第二问,同样将这个图缩点,输出入度为零.出度为零的点的个数的最大值 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex>…
[POJ 3694] Network(割边+LCA) Network Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7971   Accepted: 2902 Description A network administrator manages a large network. The network consists of N computers and M links between pairs of comput…
[POJ1236]Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 18969   Accepted: 7467 Description A number of schools are connected to a computer network. Agreements have been developed among those schools: each school maint…
[题目链接] 点击打开链接 [算法] 线段树扫描线求周长并 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex> #include <cstdio> #include <cstdlib>…
[题目链接] 点击打开链接 [算法] Tarjan算法求割点 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex> #include <cstdio> #include <cstdlib>…
[题目链接] 点击打开链接 [算法] 求出这个图的最小生成树,对于每次询问,用倍增法求出最近公共祖先,查询最小生成树上两点路径上的最大值 算法的正确性?            假设x和y在最小生成树中路径上的最长边为p,那么,根据kruskal算法的执行过程,我们发现p合并 了x和y所在的集合 假设有一条边q,满足q < p且x和y路径上的最长边为q,根据kruskal算法的执行过程,我们发现这条边必然 不能合并x和y所在的集合 因此,不会有比p更短的边 [代码] #include<bits/…
[题目链接] http://poj.org/problem?id=1167 [算法] 深度优先搜索 + 迭代加深 [代码] #include <algorithm> #include <bitset> #include <cctype> #include <cerrno> #include <clocale> #include <cmath> #include <complex> #include <cstdio&g…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2599 [算法] 点分治 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 200010 #define MAXK 1000010 typedef long long ll; const ll INF = 2e9; ll i,n,k,u,v,w,tot,root,len,ans; ll head[MAXN]…
http://poj.org/problem?id=1236 (题目链接) 题意 给定一个有向图,求:1.至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点:2.至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点. Solution 先用Tarjan缩点,所以原图就变成了一个有向无环图(DAG),问题1很简单,只要找出图中入度为0的点有几个就可以了.而第2问的话,看起来就觉得好麻烦的样子,可是看了题解后发现原来如此简单..用ans1记录入度为0的点的个数,ans2记录出度为0…
题目大意:给定一个 N 个点,M 条边的有向图,第一问求至少从多少个点出发才能遍历整个有向图,第二问求至少在这个有向图的基础上加多少条边才能使得该无向图强连通. 题解:先进行 Tarjan 缩点,得到一个 DAG.对于这个 DAG 来说,第一问显然是入度为 0 点的个数.第二问中的每条新边均应该是在出度为 0 点和入度为 0 点之间添加,因此答案是入度为 0 的点的个数和出度为 0 点的个数的最大值.另外,若只有一个强联通分量的话,需要特判. 代码如下 #include <bits/stdc++…