题解:P7304 [COCI2018-2019#1] Zamjena
一道并查集的题目,实现的时候细节较多。 【注: 以下 fa 与 num 数组的 $1 \sim n$ 存第一个数组, $n + 1 \sim 2n$ 存第二个数组。】因为与字符有关系,所以可以用 map 来记录每一个变量/数字所出现的第一个位置并标记...
一道并查集的题目,实现的时候细节较多。 【注: 以下 fa 与 num 数组的 $1 \sim n$ 存第一个数组, $n + 1 \sim 2n$ 存第二个数组。】因为与字符有关系,所以可以用 map 来记录每一个变量/数字所出现的第一个位置并标记...
这是一道不错的贪心题目,同时也考察了选手们的读题仔细程度。先给出几个关键点: 只能对两个相邻且均为白色的格子进行染色,也就是说染色是不能够覆盖的 对于输入中的 1 的位置一定要为红色,其余位置随意。 以某行的第 $i$ 列 ($1 \le i...
这是一道练习二分的不错的题目。因为每组数据的答案的范围都可以被算出来,所以就可以对答案进行二分然后判断该答案是否合法即可,这样时间复杂度也会降到 $\log$ 级别,所以不会超时。 先来看看如何求答案的范围。为了方便程序的计算,以下保证 $n \le...
这道题目的本质还是对于四舍五入的理解。 对于一个位上的数 $x$,若 $0 \le x \le 4$,则会舍到 $0$;若 $5 \le x \le 9$,则会进一位到 $10$。而题目中的零数 $k$ 为 $0-9$,分别代表个、十、百 $\cdo...
由题可知路程所花费的时间一定为 $l$,所以我们要计算的便是等待红灯所花费的时间。 Luka 开始开车时,所有交通信号灯都呈红色,并且开始循环。 信号灯将按 $d$ 升序排列。 这两句话是本题的关键。因为有序读入红绿灯的距离,所以只要从 $1$ ...
枚举公差,因为 $1 \le a_i \le w$,所以易得公差 $d \le \frac{w}{n}$。 接下来枚举数列的第一个数为 $k$,则我们可以表示出该数列的第 $i$ 项为 $k + d \times (i - 1)$。因为数列的项数与公...
题目的大意便是找到 $|T - h_i \times 6 \times 10^{-3} - A|$ 为最小值的下标并输出 $i$。 因此我们先将这个值设为 0x3f3f3f3f,即正无穷,然后每次输入进行一次比较,若比原答案更优,则将其进行更新,并记...
对于 $a_{x,y}$,一共有三种情况,分别列举一下: 初始值为 $1$。 此时不需要经过变换,直接输出 $0$。 经过若干次变换都不会变为 $1$。 这种情况显然输出 $-1$。但是该如何判断它呢? 考虑一下,在 $n \times ...
说白了,这就是一个 $\texttt{2-SAT}$ 的模板题,大致可以分成三个部分。 首先是对于数据的处理。每一个评审员的输入都是两个字符串,而每个字符串都是由字母 $h/m$ 再加上材料编号组成的。因此只需要将其用 %s 读入后分开处理就行了。 ...
这道题所用的算法是 $\texttt{Trie + DP}$。 我们设 $dp[i]$ 表示长单词 $S$ 的前 $i$ 个长度的方案数,则有(保证 $S_{j\cdots i}$ 是一个单词): dp[i] = dp[i] + \sum_{j = ...