题解:UVA1626 括号序列 Brackets sequence
这是一道区间 $\texttt{dp}$ 的典型题目。 设 $dp_{i,j}$ 表示串中第 $i$ 个到第 $j$ 个括号串最少需要括号才能完全匹配的个数。有两个显然的结论:一是 $dp_{i,i} = 1$,因为一个括号无法匹配,要且仅需要一个括...
这是一道区间 $\texttt{dp}$ 的典型题目。 设 $dp_{i,j}$ 表示串中第 $i$ 个到第 $j$ 个括号串最少需要括号才能完全匹配的个数。有两个显然的结论:一是 $dp_{i,i} = 1$,因为一个括号无法匹配,要且仅需要一个括...
对于每一次切割后,求出最大的碎片面积,也就是求出完整的玻璃的最大长度与最大宽度之积。 由题意可知,一条长度为 $k$ 的边,最多可以被切 $k - 1$ 次,因为在此之后均为长度为 $1$ 的边无法在切割。于是我们就可以用 $0$ 或 $1$ 来表示...
题目就是求多组数据的逆序对。对于每组数据,$n$ 的范围较大,为 $1 \le n \le 10^6$。而求逆序对,就需要树状数组加上离散化。 离散化就是把无限空间中有限的个体映射到有限的空间中去,这样即使 $a_i$ 较大,也不会导致 $\text...
Update on 2021.07.10:修改了题解中关联矩阵【无权图】 部分的错误。 这道题目需要极大的耐心以及细心程度,但是思维难度不大,按照题意模拟即可。【注:本题解所有内容涉及的图片见文章底部。图片的圈中的黑色数字为结点编号,边上的紫色数字...
本题求的是点双连通分量。还是先讲一下有关的概念: 割点:在一个无向连通图中,如果删除某个点和这个点关联的所有边,使剩下的图不再连通的点。 点双连通图:在一个无向连通图中,对于任意一个点,若删除这个点和这个点关联的所有边后,剩下的图仍能连通的图。 ...
模板题,强连通分量在本文使用 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$。也就是样例给的图片,我们观察一下,发现比普通的求两点间的两倍曼哈顿距离又多...