Description: 一堆人需要联系,但如果x 可以联系 y,你联系了x就不用联系y了,你联系一个人都会有固定的花费,问你最小联系多少人,和最小花费 Solution: Tarjan缩点,求出缩点的入度,如果为0则代表这个缩点需要联系一次,缩点的时候维护好根点到达该缩点的最小值即可 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include…
Road Construction 本来不想做这个题,下午总结的时候发现自己花了一周的时间学连通图却连什么是边双连通不清楚,于是百度了一下相关内容,原来就是一个点到另一个至少有两条不同的路. 题意:给你一副图,求最少需要加几条边使其变为边双连通图. 思路:kuangbin模板上有介绍,这里就不详细说明了.具体做法是tarjan缩点后求度为1(2)的数量ans,答案就是(ans+1)/2. const int N=1e5+5; struct edge { int to,next,f; } e[N*…
算法学自 BYVoid https://www.byvoid.com/zhs/blog/scc-tarjan/ 这个写得很清楚了 当然 你可能不这么认为 而且 如果是让我 一开始就从这个博客 学 tarjan 缩点 估计我也会觉得 很难懂 我猜是 博客看多了 有了些基础 在看这一篇的时候懂了 就觉得 是这篇比较好懂 (事实上人家本来写得就可以嘛) 我想到了 班主任的一句话 量的积累 才有质的变化 GeneralLiu tarjan 缩点 求 scc(strongly connected comp…
Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13804   Accepted: 5507 Description A number of schools are connected to a computer network. Agreements have been developed among those schools: each school maintains a li…
Warm up Problem Description   N planets are connected by M bidirectional channels that allow instant transportation. It's always possible to travel between any two planets through these channels. If we can isolate some planets from others by breaking…
Redundant Paths Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11047   Accepted: 4725 Description In order to get from one of the F (1 <= F <= 5,000) grazing fields (which are numbered 1..F) to another field, Bessie and the rest of the…
题目链接:https://cn.vjudge.net/problem/ZOJ-3795 题目大意:给你n个人,m个关系, 让你对这个n个人进行分组,要求:尽可能的分组最少,然后每个组里面的人都没有关系. 具体思路:首先对年龄相同的人进行缩点,这些人是肯定不能在同一个组里面的.然后缩完点之后找出剩下的图中一条最长路(每个点的权值就是缩完点之后当前联通块里面的人的个数),我们找出最长路之后(最长路通过拓扑排序判断),这就是答案了.即使有别的图中的人,我们都可以放进这个最长链形成的分组个数中. AC代…
5450: 轰炸 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 43  Solved:18[Submit][Status][Discuss] Description 有n座城市,城市之间建立了m条有向的地下通道.你需要发起若干轮轰炸,每轮可以轰炸任意多个城市.但每次轰 炸的城市中,不能存在两个不同的城市i,j满足可以通过地道从城市i到达城市j.你需要求出最少需要多少轮可以 对每座城市都进行至少一次轰炸. Input 第一行两个整数n,m.接下来m…
题目链接:https://vjudge.net/contest/219056#problem/H 题意:先输入n,代表接下来有n个点,接下来n行,第i行里面的数(假设是)a,b...0(到0表示结束),表示点i和a,b有一条从i到a,b的有向边,现在叫我们求出两个答案, 第一个答案就是至少要选择几个点作为起点,才可以到达所有的点, 第二个答案就是至少要添加几条有向边才可以使得每次随便选择一个点都可以到达其他所有点(整个图就是一个强连通分量). 思路:首先计算第一个答案:至少要几个点作为起点才可以…
这个题很容易想到正解就是缩点找入度为零的点,那么我们考虑一种特殊情况就是,一个入度为零的点我们不访问他就知道他是不是凶手,那么这样的话就是:I. 他是一个真·孤立的点 II. 他在图里但是在他的强联通分量里只有他一个而且他能到达的所有点都能被其他入度为零的点所达到 ,这个细节70分....... #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include…