10 2023 档案
摘要:CF1271E 简单题。 首先直接从 入手是不好做的,于是从每个值进行考虑。 发现能到达 的点有两种情况,分类讨论一下。 为奇数时,上一个数一定是 。 为偶数时,上一个数为 或 。 奇数一次过后就会变为偶数,所以对偶数再推一步 $2x+2,
阅读全文
摘要:ARC163D 发现这个竞赛图一定能被分为两个集合 , 。满足 ,均有 。答案就是划分这两个集合的方案数。 证明: 首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号
阅读全文
摘要:CF1856E2 差点场切啊。 默认已会 E1。 考虑对 E1 进行优化,发现瓶颈在于背包。 设当前子树以 为根,容易发现 ,显然要从这里下手。发现总值域较小是与普通背包不同的地方,要么个数少,要么值域小。不妨设背包的总容量为 \(W\
阅读全文
摘要:CF1856E1 发现题目的要求只需要相对的大小关系,考虑一个子树时,不妨令子树内部编号连续。类似于一个 dp,这样也可以更好地将信息由儿子转移到父亲。 设 的孩子为 。由于每棵子树内的编号是连续的,令以 为根的子树的编号为 \(
阅读全文
摘要:P5189 容易想到区间 dp,考虑设计状态。 首先如果只有 两维的话,是无法转移的。然后发现 是转移的一个必要的条件,可加入 这一维。由于是区间 dp,所以只需考虑向左或向右加珠子,不妨令 消除 以及 \(i\
阅读全文
摘要:P3464 显然的,先将原数变为四进制的数。 由于算的是进位/不进位的代价最小值和方案数,容易想到 dp。 这里假定该四进制数是从高位到低位的,顺序显然是由低位到高位。 令 表示第 位进 / 不进位的最小代价, 表示的是最小代价下的方
阅读全文
摘要:P9744 因为给定的 的个数是有限的,所以一定是枚举 到 的段进行更新。发现操作一最多只会执行一次,枚举在哪里执行操作一,然后对答案进行更新。因为 前面的 不管怎么都需要清 ,这部分代价可以单独计算。但是有可能是在 $j\in[p_
阅读全文
摘要:ABC251F 题意:给一个图,求出两棵这个图的生成树,分别满足没有横叉边和返祖边,并输出这两棵树的形态。 首先是没有横叉边,如果学过 Tarjan 的话,肯定可以直接 DFS 一遍就可以了。因为只要遇到横叉边,在之前的点的搜索中优先走这条边,一定可以变为所有边都是树边或返祖边。 同理,因为要求不出
阅读全文
摘要:CF733E 简单的。 手摸一下容易发现来回走了若干次之后, 的左右都会变为同一个字符,因为它向上时遇到 ,会沿着上来的路再下去,然后遇到 再上去……它一直执行这样的操作的话,就只有上面的 和下面的 $\texttt{
阅读全文
摘要:P6328 一眼题。 首先处理出所有点之间的距离是简单的,可以用 BFS 在 的时间内解决。 然后想一个相对暴力的做法,因为只要求至少一个二元组,那答案显然的等价于求出一个点集,使得每个点集中的点存在一个 能够在 步内到达 。
阅读全文
摘要:CF1515F 简单题。 先猜个结论,当且仅当 时无解,这是好想的。因为每次合并减少一个点,总点权减少 。 它为什么是对的呢?考虑反证法。令 为当前的点权最大的点。若不能合并,则有 ,则 $\su
阅读全文
摘要:CF713D 有一个相当暴力的 的做法是显然的,即对所有点求出以其为右下角的最大的全为 的正方形的边长,记为 。然后枚举询问的矩形中的点的 的值,和边界判一下后的 就是答案了。 但是这样不好直接维护,由于矩形边界,
阅读全文
摘要:ABC212F 暴力就是直接跳,显然不可过。 考虑对暴力进行优化,发现整个图是不会改变的,容易想到使用倍增。 显然是对边进行倍增的,令 表示从第 条边开始,跳了 条边后,到的是哪一条边,如果不存在,则设为 。 然后就是很显然的倍增了,
阅读全文
摘要:Figures 题目链接。cnblogs。luogu。 Problem 有 个点,每个点有 个互不相同、可被区分的孔,每次可以选择两个不同点,连接两个未被连接过的孔,有多少种方案使得最后形成一棵树。合法方案中可以不把孔填满。 Sol 模拟赛题。 由于除根节点外每个点只有一
阅读全文
摘要:P7624 令 表示 号车站到 号车站的距离, 表示环形地铁的总长度。 考虑题中给的条件: 时,若 ,即可表示为 \(d_{v_i} - d_{u_i} \ge L_i \iff d_{u_
阅读全文
摘要:P9410 待补:根号分治做法 发现要支持区间加和连通块求和、合并,容易想到分块(虽然我一开始看错题了)。 完全不需要根号分治,直接分块即可。 考虑稍微暴力的分块。区间加的话,散块部分可以直接加到全局的 数组中,毕竟不是区间求和,然后整块部分直接打标记,记录块内每个连通块的大小即可。
阅读全文
摘要:P5313 看到值域比较,又支持离线,可以想到莫队和桶。 考虑先将桶按 分段,将每段分别进行按位与运算,做完第 段时用于运算的桶全都为 ,就可以直接得到答案。这显然可以用 bitset 优化。但是 STL 的 bitset 不支持分裂操作,所以需要手写。 当 \(b
阅读全文
摘要:CF1829G 先将整个塔变为一个直角三角形的模样。这时就可以很好的用数组表示了,这时发现答案就是一个倒着的等腰直角三角形的和(不考虑边界)。 考虑预处理。 令 为点 所在的行数, 表示 号点的答案, 表示 和 它正上方
阅读全文
摘要:P8769 一道有意思的贪心题。 有一个很容易想到但是有误的贪心:从第 天开始,每次选择单价最低的购买,直到第 天。 但如果有一些单价较低且保质期极短的商品,和一些单价最低但保质期较长的商品,这个贪心就不会选择到单价较低的商品。 如果我们使时间逆流,就不会出现这样的问题,即从
阅读全文
摘要:UVA12716 一道挺有意思的位运算的题。 与 本来是没有什么联系的,也不好直接转化。 那么就需要一个中间数进行转化,一般来说会是一个临界值,否则不好找答案。 先观察 ,可得 \(\gcd(
阅读全文
摘要:P8816 提供一种不一样的做法。 首先将每个点以横坐标为第一关键字,纵坐标为第二关键字排序。 一维的 dp 肯定不够,因为 dp 既要存最多点数,又要保存自由点的点数。 赛时没看 的范围,于是开了一个结构体。 表示从当前起点开始且于 点结束的最多的点数
阅读全文
摘要:CF1139E 翻译中有一句话:校长将会从每个社团中各选出一个人。 就是一些人被分为一组,从每组中选一些人出来。 这就很容易想到通过二分图的匹配。 运算有一个显而易见的贪心:枚举每个值能否被匹配,第一个找不到的值就是答案。 由于 运算的值域
阅读全文
摘要:CF633G 简单题。 先看到子树加和子树质数个数和,果断转换为 dfs 序进行处理。 既然有区间求和,考虑线段树。 若对于每一个节点维护一个 数组,用二进制数 来表示,即当 时第 位为 。设当前节点为 ,左右子
阅读全文
摘要:ABC298Ex 简单题。 因为有 不好做,容易想到讨论 和 的大小。 令 ,\(dep_L > dep_R, dist = dep_L + dep_R - 2\times dep_p\
阅读全文
摘要:CF1805E 待补:有另解 看到维护树上问题,可以想到线段树合并。 但直接维护显然不行,要一点技巧。 发现 的出现次数 如果 ,那么一定是一个候选项,若 ,那么一定不能作为候选项。 于是可以用权值线段树
阅读全文
摘要:ABC273F 一道比较板的区间 。 先对坐标离散化,令离散化数组为 。 令 表示能走到区间 的最短路程,显然 数组初始为 。 但发现这样无法转移,可以再增加一维 \(k \in \{0
阅读全文
摘要:P7795 典。 显然 的时间复杂度无法通过。 使子段平均值最大,考虑二分。 可以二分平均值 ,然后判断是否有满足条件的子段. 时间复杂度:\(\mathcal{O}(\dfrac{n\log\max\{a_i\}}{\text{eps}}
阅读全文
摘要:P4133 双倍经验 发现斐波那契数列增长极快,不到 项就超过了 ,搜索树也极为稀疏,可以考虑搜索。 爆搜肯定会超时,考虑优化: 可行性剪枝。 记忆化,去除重复的计算。 改变搜索的顺序,因为先考虑小元素的话,会有较多的无用的搜索,且小元素较灵活,更容易凑到 \(
阅读全文
摘要:P8565 发现数列 增长的特别快,项数最多时是 ,但这样也只会有一百多项就可以超过 。 可以考虑搜索,因为搜索树会比较稀疏,函数 dfs(val, cur) 表示凑出 还需要 \(val\
阅读全文
摘要:ABC284F 这题的正解是 函数。 如果 的话,若可以找到连续的分别长为 的两段,且这两段可通过 次翻转变为相同的字符串,那么便一定有解,否则无解。 暴力判断是 的,时间复杂度直接上天。 可以
阅读全文
摘要:ARC163D 发现这个竞赛图一定能被分为两个集合 , 。满足 ,均有 。答案就是划分这两个集合的方案数。 证明: 首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号
阅读全文
摘要:P8701 显然可以直接将维护的值变为区间前 大,为实现的简洁,可使用 vector,使用归并合并信息达到 。由于偷懒,归并部分我直接写的 sort,加上 vector 的大常数,加 O2 后即可通过。 时间复杂度:$\mathcal{O}(8n\lo
阅读全文
摘要:P9688 由于要求单调,肯定满足对于所有选择的颜色 使得其最左边出现的位置 和最右边出现的位置 ,满足 。不然的话肯定不会单调。 直接枚举出现过的颜色,无交的按 从小到大连边,且要满
阅读全文
摘要:P9689 难评。 可以直接枚举树的高度,看有没有砍掉 个点。 当 小于树的深度时,显然节点个数为 ,此时编号和是容易的。 但是当 等于树的深度时,编号和不能直接求出,因为最后一层的编号不是连续的。 令 。子树大小是容易通过记忆化得到的。考
阅读全文