题解:B3610 [图论与代数结构 801] 无向图的块
本题求的是点双连通分量。还是先讲一下有关的概念: 割点:在一个无向连通图中,如果删除某个点和这个点关联的所有边,使剩下的图不再连通的点。 点双连通图:在一个无向连通图中,对于任意一个点,若删除这个点和这个点关联的所有边后,剩下的图仍能连通的图。 ...
本题求的是点双连通分量。还是先讲一下有关的概念: 割点:在一个无向连通图中,如果删除某个点和这个点关联的所有边,使剩下的图不再连通的点。 点双连通图:在一个无向连通图中,对于任意一个点,若删除这个点和这个点关联的所有边后,剩下的图仍能连通的图。 ...
模板题,强连通分量在本文使用 tarjan 算法进行求解。 首先是概念: 如果在有向图 $G$ 中的任意两个点都相互可达,则图 $G$ 是一个强连通图。 在有向图 $G$ 的的所有子图 $G’$中,如果 $G’$ 是一个强连通图,则图 $G’$...
简单题,大致的题意就是求 $(\sum_{i = 1}^n a_i \times b_i) \times 0.85$,然后保留一位小数的值。需要注意的是,这里的保留一位小数是直接舍去后面的数字,而不是四舍五入求值! 处理保留一位小数的两种方法: 分...
对于每组的数据,如果是公平的,那么两个能力值最高的人一定被分在了两组中。这个结论是显然的,因为如果被分在一组,那么一定会有一个人输,也就是不公平的。 有了这个结论,我们只需要判断能力最高的两人是否被分在同一组即可。对于一个数据类型 pair<i...
这是一道几乎为模板的线段树裸题。题目要求的是单点更新,区间查询。 因为题目求的为 $\gcd$,所以线段树合并的时候肯定要写成 tree[cur] = gcd (tree[cur << 1],tree[cur << 1 | 1...
这是一道有关于直角坐标系的题目,手动算一下就可以找到规律。 不难道想到分类讨论,我们分三类(飞行器与旗子应该不会重叠): $x_1 ≠ x_2$ 且 $y_1 ≠ y_2$。也就是样例给的图片,我们观察一下,发现比普通的求两点间的两倍曼哈顿距离又多...
本题的题面十分简单,但是我们可以从数据范围中与样例中看出一些细节信息。 首先是 $1 \le N \le 1024,2 \le M \le 16$,从 $M$ 的数据范围中很容易联想到 $N$ 在 $M$ 进制下所表示的数。把样例中的数字进行转换,分...
这道题大家可以先画画图,然后发现周围除四个角的任意一点出发,总能回到该点。因此我们可以只求出第一行开始遍历的求和答案,注意四角的两点需要特判! 至于如何求一个环之和,我们就找规律。令一开始往右下的方向走,则不断碰壁更改的方向依次是:右下 -&g...
就是一个深搜的过程,每次一头牛加入进来,做以下操作: 判断该位置是否已经有牛。若已经有牛,则说明之前的操作必须使该位置有牛才最优,因此此时可以将答案减去 $1$。 判断该位置是否满足题意。 判断该位置的四个相邻位置是否满足题意。 若有新加牛,...
由题可以知道,每一条边都是有向边。一个检查站只能保护一个环上的路口,即检查站的个数也是环的个数。 题目的第一问求最小花费,也就是就每个环上建一个检查站的最小花费之和。因此用 tarjan 求出每一个强联通分量以及该分量内的最小花费,最后求一个和。 1...