就按照题意建出有向图来(n个点,2n-2条边),然后从按随便一个rating排序,从最后一个开始dfs,用vis数组防止重复访问,因为每次之前的肯定能访问之后的(及之后的能访问的),所以不会有重复.就行了. #include<cstdio> #include<algorithm> using namespace std; #define N 100010 int a[N],b[N],A[N],n,B[N],sum; bool cmp(const int &a,const i…
题目链接: C - CodeCoder vs TopForces Gym - 101142C 题目大意:给你n个人的信息,每一个人的信息包括两个.t1和t2.A>B的前提是A的t1和t2至少有一个是大于B的t1和t2的.还要注意有一种情况当A>B,B>C的时候,A也是大于C的(虽然有可能A和C直接比,有可能A是小于C的). 打个比方: A 4 10 B 3 13 C 5 12 这个时候A是大于B的,但是A是小于C的,但是B是大于C的,所以就可以认为A是大于C的. 具体思路:首先按照x进行…
http://codeforces.com/gym/101142/attachments 题意:每个人在TC和CF上分别有两个排名,如果有一个人在任意一个网站上大于另一个人的排名,那么这个人可以打败另外一个人.还有就是如果 B 能打败 A, C 能打败 B,但是 C 直接从排名上看 C 并不能打败 A,但是因为 B -> A 并且 C -> B,所以 C -> B -> A, 即 C 也能(通过打败 B 来)打败 A. 如这个样例: A :5, 5 , B :1, 6, C:2,…
(绘图什么真辛苦) 强连通分量: 在有向图 G 中.若两个顶点相互可达,则称两个顶点强连通(strongly connected). 假设有向图G的每两个顶点都强连通,称G是一个强连通图.非强连通图有向图的极大强连通子图.称为强连通分量(strongly connected components). 比方上面这幅图( a, b, e ), ( d, c, h ), ( f, g ) 分别为三个 SCC. tarjan算法伪代码: 该算法由 Robert Tarjan 发明,原论文:Tarjan1…