POJ1236学校网络——tarjan】的更多相关文章

题目:http://poj.org/problem?id=1236 Tarjan+缩点.温习一下Tarjan的写法. 1.在缩点后的TAG中,有几个联通块等价于有几个入度为0的点! 2.把它们都联通相当于给每个入度为0的点都连一条入边,给每个出度为0的点都连一条出边,所以二者取max即可. * 有向图是强联通分量的充要条件是没有入度为0的点也没有出度为0的点. #include<iostream> #include<cstdio> #include<cstring> u…
题目:http://poj.org/problem?id=1236 通过传输文件的特点可以看出要先求强联通分量,缩点: 问题1:即缩点后入度为0的点,从它们开始传文件可以传给所有学校: 问题2:对于所有入度为0.出度为0的点,对应连一条边:多余的随便再连一下就可以,所以答案是max(入度为0点数,出度为0点数): 需要特判一下没有入度为0的点,也就是整个图是一个强联通分量时,输出1和0. 代码如下: #include<iostream> #include<cstdio> #incl…
有生以来做的第二道IOI题目居然也是96'的,又是一道比我还老的题目. 纯属复习或者说再学一遍Tarjan算法,本题的主要算法就是Tarjan+缩点,对于两个子问题的答案,根据解题:强连通缩点为拓扑图后,设入度为0点数为r,出度为0点数为c,则Task 1的答案就是r,这个很好理解:Task 2的答案是max(r,c),这个理解不能,但是我自己画了几个图都是这样的.如果真的比赛时遇到这种东西就要自己推理了… 仍然觉得Tarjan很抽象,就像很久以前觉得快排很抽象一样…我也许能够记下来标程,但是D…
割点与桥 题目描述 给定一张无向图G(V,E),你需要找出所有的割点与桥. 输入 第一行给出两个正整数V,E. 接下来E行每行两个正整数x,y,表示有一条连接x,y的边. 输出 输出共2行,第一行输出所有割点的编号,第二行输出所有桥的编号. 样例输入 7 8 1 2 1 3 1 7 2 3 3 4 3 5 4 5 5 6 样例输出 1 3 5 3 8 提示 割点与桥的定义: 割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点. 割边(桥):删掉它之后,图必然会分裂为两个或两个以上的子图.…
描述 一些学校的校园网连接在一个计算机网络上.学校之间存在软件支援协议.每个学校都有它应支援的学校名单(学校a支援学校b,并不表示学校b一定支援学校a).当某校获得一个新软件时,无论是直接得到的还是从网络得到的,该校都应立即将这个软件通过网络传送给它应支援的学校.因此,若需要让所有连接在网络上的学校都能使用一个新软件,只需要将其提供给其中一些学校即可. 子任务a:根据学校间软件支援协议(各个学校的支援名单),计算最少需要将一个软件直接提供给多少个学校,才能使该软件通过网络传送到所有学校. 子任务…
P1153 - 间谍网络 From ForeverBell    Normal (OI)总时限:13s    内存限制:128MB    代码长度限制:64KB 描述 Description 由于外国间谍的大量渗入,国家安全正处于高度危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍接受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报.所以,如果我们能够收买一些间谍的话,我们就可能控制间谍网中的每一分子.因为一旦我们逮捕了一个间谍,他手中掌握的情报都将…
题目大意: N个学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输.问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件.问题2:至少需要添加几条传输线路(边),使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件. 链接http://vjudge.net/problem/viewProblem.action?id=17001 每个强连通分量内只要有任意一个学校获得一份软件就可以了,因为强连通分量内的任意两点是相互可达…
洛谷传送门 看着这道题给人感觉就是tarjan求SCC,然而还得判断是否能控制全部间谍,这就得先从可以贿赂的点dfs一遍. 如果没有全部被标记了,就输出NO,再从没被标记的点里找最小的标号. 如果全被标记,就输出YES,再从入度为0的缩点里找最小的价格,加到ans中,最后输出ans. --代码 #include <cstdio> #include <stack> #include <cstring> using namespace std; , minn; ], nex…
Description 给出一个有向图, 要求出至少从哪几个点出发, 能不漏地经过所有节点. 再求出至少加几条边, 才能使图变成一个强联通分量 Solution 求出所有强联通分量, 形成一个有向无环图, 第一问题就是求出有多少强联通分量的入度为 $0$ 第二个问题就是求出 入度为$0 $和 出度为$0$  的强联通分量的数量  的 最大值, 想象一下就可以了. 在整个图都是强联通分量下, 第二个问题答案为 $0$. Code #include<cstdio> #include<cstr…
洛谷 1262 图论 tarjan 并不感觉把这道题目放在图的遍历中很合适,虽然思路比较简单但是代码还是有点多的,, 将可收买的间谍的cost值设为它的价格,不可购买的设为inf,按照控制关系连图,Tarjan缩点,得到的新图中,入度为0的点是必须购买的,如果这些点中存在inf,则不成立 #include <cstdio> #include <algorithm> #include <cstring> const int inf = 0x3f3f3f3f; const…