wyr 看了某场 ACM,并惊奇的发现他不会签到题。
比赛链接。
L. Modulo Magic
题意
求
题解
不妨假设
考虑对于
而这些数字覆盖了所有
可以发现此时
最终答案为
提交记录。
K. Number Theory
题意
给定质数
求
题解
考虑先预处理出哪些数字能被表示
根据数论相关的知识,可以知道恰好有一半的数字能被表示出来。
考虑从小到大枚举
若答案为
打表可知在
提交记录。
H. Equal MEX
题意
给定一个长为
现在你需要将整个序列划分为若干段,使得所有段的
题解
设整个序列的
首先可以知道一定有
若
而划分出的所有段
这矛盾了,说明不可能
那么这就相当于问:有多少方案将整个序列划分为若干段,使得每一段的
这就可以 dp 了,令
那么如何转移呢,如果
可以发现满足条件的
具体细节可以看代码,复杂度
B. MST
题意
给定一个长为
现在有一个
求最小生成树边权和。
题解
有一个 Boruvka 的
首先如果
然后考虑这么一件事情,设整个序列中最大的数字是
若
为什么呢,假设有两个点
假设全局最小值是
否则有
考虑这个连通块内部的连边。
对于一个点
设
考虑连通块外部的连边,可以发现
那么我们令
提前预处理每一个前缀,最小值和最大值的位置,即可
提交记录。
G. Circle Convertation
题意
给定两个字符串
定义一次操作为选择一个
构造一组操作次数不超过
题解
没有 300iq,做不出来这题。
令
当
具体操作是这样的,如果
容易发现一定能划分为
而这意味着一定存在一段长度为偶数,那么我们把这个偶数段整个 flip 一下,连续段个数一定减少。
一直做这个操作,直到只剩到一个连续段,此时
那么这就将
注意到操作并不会改变
然后我们把
这样操作就变成了交换相邻两个元素,冒泡排序一下,然后把
提交记录。
F. Good Coloring
题意
现在有一个
现在给定了一个这张图的
现在你需要给出一个
题解
没有 300iq,做不出来这题。
考虑给所有边定向,方向为从颜色小的点指向颜色大的点,这样整张图就变成了一个 DAG。
最终每一个点的颜色为,其所有前驱中颜色最大的点,颜色 +1。
可以发现,若一个点颜色为
那么我们找一个颜色最大的点,一直跳前驱,就能找到一个恰好有
提交记录。
C. Tree Circles
题意
现在有一棵
定义一个以点
现在有
求有多少组直径
题解
这题找到一个能过的解倒是不难,但是很难找到一个好写的解。
考虑两个圆不相交,其实相当于每一个圆没有覆盖别的关键点。
令
问题在于
考虑建出一个类似于最小生成树的重构树的东西,然后按照中序遍历存下每一个点。
那么两个点
直接把
st 表处理 rmq 即可。
时间复杂度
提交记录。
A. Zero Sum
题意
现在有一个
现在你需要选择
找出最小的
题解
这题这么水怎么过的人这么少。
设
显然这是一个
考虑将这个数组的所有行随机打乱,那么最优方案期望的
考虑取
时间复杂度
提交记录。
D. Angle Beats 2.0
题意
现在有一个 .*
两种符号之一。
定义一个图案是一个 *
和两个与这个 *
相邻的
.
,并且他们组成了一个 L 形。
问有多少种方案,画出若干不相交的图形,使得每一个 *
都在一个图形中。
题解
读懂题意就是简单题啊。
考虑一个 *
一定有一个左右的 .
和一个上下的
.
要和他匹配。
考虑把每一个 .
当成点建一个图,一条边表示其连接的两个点至少有一个需要选择。
那么对于一个 *
,就将其上下两个位置的 .
连一条边,如果只有一个位置有 .
,那就给这个位置连自环。
显然,建好图之后形成了若干个连通块,考虑分类讨论。
第一种情况是边数>点数,此时显然无法满足要求。
第二种是边数=点数,这种情况是一棵基环树。
此时每一条边需要选择其两个端点之一,显然下面的树只有唯一的选择,环上有两种方案。
值得注意的是,如果这个环是自环,那么只有一个方案。
第三种情况是边数<点数,此时显然 边数=点数-1,那么方案数就是连通块内点的个数。
所有连通块答案乘起来即可。
提交记录。
I. Cactus is Money
题意
给定一个
第
现在你需要选出一棵生成树,使得
题解
考虑只有一个环可以选出哪些生成树。
可以发现一个
现在相当于我们要在若干个下凸壳上各选出一个点,使得代价最小。
可以发现这相当于是需要合并下凸壳。
使用闵可夫斯基和,每一次启发式合并最小的两个凸壳即可。
复杂度
提交记录。
E. LIS
题意
给定
建立一张
求这张图的最长路。
题解
考虑 dp,用
考虑使用线段树套李超树进行维护,外层的线段树,区间
查询
查询值之后,将点
时间复杂度
提交记录。
其实就剩一个题了但我还没琢磨懂这个题解。