题意 题目链接。 给定一张有向无自环图,求一个点集满足: 点集内任意两个不同点距离不小于 $2$(即无边相连)。 对于任意一个不在点集内的点,存在一个点集内的点到它的距离不大于 $2$(即两步能达)。 解析 算法实现与 @Mickey_snow、@_Anchor 等题解类似,本篇题解主要重申一种可能更清晰的证明以及错解的 Hack。 简单阐述解法:…
题意 题目链接。 题意有点复杂,大意是有一个猎杀游戏,有 $m$ 名玩家,每名玩家初始有 $3$ 点生命。有 $n$ 个时刻,每个时刻会发生形如 $u_i$ 杀 $v_i$ 的事件,若 $u_i$ 和 $v_i$ 都存活,则 $v_i$ 生命值减 $1$,若生命值为 $0$ 则死亡。现在发生了一次特殊事件:穿越者穿越到某一次追杀后(可以是第 $0$…
题意 题目链接。 有 $n$ 只袜子,每只袜子都可能是左/右袜子且有一种颜色。每次操作你可以:改变袜子的颜色或改变袜子的左右性。你需要使左右袜子一一配对(具体地,若两只袜子一左一右且颜色相同,则这两只袜子配对)。求最小操作数。 解析 首先由于左右袜子必须要一一配对,所以两者数量一定要相等,因此答案最小为 $|\frac{l-r}{2}|$,即我们至…
题意 题目链接。 一共有 $n$ 个格子,给定两个整数 $A,B$ 分别位于第 $1$ 和第 $n$ 格,中间有 $n-2$ 个空格。询问是否存在一种填数方案满足任意相邻两个数之差的绝对值在 $[C,D]$ 之间。 解析 考虑这 $n$ 个数之间有 $n-1$ 对差,因此题目等价于: 是否存在 $A+\sum\limits^{n-1}_{i=1} …
一段时间没打字符串相关的题了,找道简单的 Trie 练练手。 题意 题目链接。 维护一个复古打印机,支持添加字母,删除字母,打印字母。求用最小步骤打印出所需的所有单词。 解析 首先容易想到建 Trie,然后在 Trie 上进行 dfs,每次走到一个结点就添加这个结点对应的字母,若走到了一个单词的结尾就打印,然后在每层 dfs 返回之前删除当前字母。…
题意 题目链接。 有一张 $n\times\ n$ 的网格,有 $1,2,3$ 三种颜色,每轮交互库会给出一种颜色,你需要在剩余两种颜色中选一种颜色涂在一个格子上,不可以使任何两个相邻格子颜色相同。你需要扮演涂色者将所有格子涂上颜色。 解析 首先我们考虑到,如果有一个空格子,其上下左右四个格子中有两种颜色,你就输了(因为交互库可以一直给出剩余的这种…
题意 题目链接 给出一个正方形区域,其中有一些点是障碍。每次询问给出两个球的初始位置,询问至少需要改变几次重力才能使两球相遇。 解析 首先我们发现,实际上仅有障碍周围(包括地图边界)上的点是有意义的(因为任何位置的球经过一次操作一定会到这些点,显然一次操作是可以枚举的)。我们定义每一组有意义的 $(x,y)$ 为一个状态,显然最多状态数为 $200…
题意 题目链接 给定 $n$ 个点,求一个由若干个点连接成的凸多边形,所包含的点数最多,输出点数。 解析 先说解法:将所有边按照 atan2(y,x) 的值排序, 然后枚举凸多边形起点,再遍历排序后的边进行 dp 转移,复杂度为 $O(n^3)$。 大致思路与已有题解相同,但是我在这里想要阐述一个困惑我许久的点:为什么是 atan2 ? 搜索百度百…
非常有意思的一道题(虽然确实容易想不出来)。 题意 题目链接 维护一个 $0 \sim 2^n-1$ 的序列,支持两个操作:将下标为偶数的数按序提前,将下标为奇数的数按序后置;将下标为偶数的数按序后置,将下标为奇数的数按序提前。 解析 我们考虑两种操作的实质。 第一种操作(偶前奇后):对于下标为 $x$ 的数,若 $x$ 为偶数,则它的新下标为 $…
题意 题目链接 树上的棋子博弈,每个点有权值。你可以添加一条边以试图反败为胜,不同的加边方法根据权值有一个代价,需要最小化这个代价。 解析 我们首先定义一个结点先手必败是 lose,先手必胜是 win,容易发现,叶子结点一定是 lose,然后对于每一个非叶子结点,只要它有一个儿子是 lose,它就是 win,否则,该结点也是 lose。一遍 d…