题解:B3609 [图论与代数结构 701] 强连通分量

模板题,强连通分量在本文使用 tarjan 算法进行求解。 首先是概念: 如果在有向图 $G$ 中的任意两个点都相互可达,则图 $G$ 是一个强连通图。 在有向图 $G$ 的的所有子图 $G’$中,如果 $G’$ 是一个强连通图,则图 $G’$...

Solution

题解:P7621 [AHOI2021初中组] 超市购物

简单题,大致的题意就是求 $(\sum_{i = 1}^n a_i \times b_i) \times 0.85$,然后保留一位小数的值。需要注意的是,这里的保留一位小数是直接舍去后面的数字,而不是四舍五入求值! 处理保留一位小数的两种方法: 分...

Solution

题解:CF1535A Fair Playoff

对于每组的数据,如果是公平的,那么两个能力值最高的人一定被分在了两组中。这个结论是显然的,因为如果被分在一组,那么一定会有一个人输,也就是不公平的。 有了这个结论,我们只需要判断能力最高的两人是否被分在同一组即可。对于一个数据类型 pair<i...

Solution

题解:CF914D Bash and a Tough Math Puzzle

这是一道几乎为模板的线段树裸题。题目要求的是单点更新,区间查询。 因为题目求的为 $\gcd$,所以线段树合并的时候肯定要写成 tree[cur] = gcd (tree[cur << 1],tree[cur << 1 | 1...

Solution

题解:CF883M Quadcopter Competition

这是一道有关于直角坐标系的题目,手动算一下就可以找到规律。 不难道想到分类讨论,我们分三类(飞行器与旗子应该不会重叠): $x_1 ≠ x_2$ 且 $y_1 ≠ y_2$。也就是样例给的图片,我们观察一下,发现比普通的求两点间的两倍曼哈顿距离又多...

Solution

题解:CF1505D Xenolith? Hippodrome?

本题的题面十分简单,但是我们可以从数据范围中与样例中看出一些细节信息。 首先是 $1 \le N \le 1024,2 \le M \le 16$,从 $M$ 的数据范围中很容易联想到 $N$ 在 $M$ 进制下所表示的数。把样例中的数字进行转换,分...

Solution

题解:P7472 【[NOI Online 2021 入门组] 吃豆人】

这道题大家可以先画画图,然后发现周围除四个角的任意一点出发,总能回到该点。因此我们可以只求出第一行开始遍历的求和答案,注意四角的两点需要特判! 至于如何求一个环之和,我们就找规律。令一开始往右下的方向走,则不断碰壁更改的方向依次是:右下 -&g...

Solution

题解:P7411 [USACO21FEB] Comfortable Cows S

就是一个深搜的过程,每次一头牛加入进来,做以下操作: 判断该位置是否已经有牛。若已经有牛,则说明之前的操作必须使该位置有牛才最优,因此此时可以将答案减去 $1$。 判断该位置是否满足题意。 判断该位置的四个相邻位置是否满足题意。 若有新加牛,...

Solution

题解:CF427C Checkposts

由题可以知道,每一条边都是有向边。一个检查站只能保护一个环上的路口,即检查站的个数也是环的个数。 题目的第一问求最小花费,也就是就每个环上建一个检查站的最小花费之和。因此用 tarjan 求出每一个强联通分量以及该分量内的最小花费,最后求一个和。 1...

Solution

题解:P7304 [COCI2018-2019#1] Zamjena

一道并查集的题目,实现的时候细节较多。 【注: 以下 fa 与 num 数组的 $1 \sim n$ 存第一个数组, $n + 1 \sim 2n$ 存第二个数组。】因为与字符有关系,所以可以用 map 来记录每一个变量/数字所出现的第一个位置并标记...

Solution
1789101113