Loading

摘要: 基础数数题。 曼哈顿距离不方便数点,比较套路的转化为切比雪夫距离。 那么现在要数三元组 \((i,j,k)\) 个数使得两两距离相等。 首选一下发现只用两种情况,第一种是三个点构成等腰直角三角形,第二种是三个点构成锐角三角形使得存在一条平行于坐标轴的边,且该边上的高和它的长度相等。 充分性也不难证明 阅读全文
posted @ 2021-06-09 22:55 7KByte 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 近期做的最好的贪心题之一。 翻了一下官方题解貌似是转化为树上问题然后线段树维护,可能出题人想少了没有想到贪心写法。懂日语的小伙伴可以研究一下Solution 。 第一步不难想到对于所有的星星按 \(Y\) 从小到大排序,这样限制条件转化为选了一颗星星后,接下来不能选择一个区间内的星星。 那么对于当前 阅读全文
posted @ 2021-06-09 22:24 7KByte 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 这题看起来人畜无害,非常小清新的 DS 题,但写起来就不会这么想了。 题目大意,给定一个长度为 \(N\) 的序列 \(S\) ,需要回答 \(Q\) 次询问,每次询问 \(\sum\limits_{L\le i\le R}\max\limits_{i-T\le j\le i}\{S_j\}\) 。 阅读全文
posted @ 2021-06-08 21:38 7KByte 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 支持向集合中加入或删除一格区间,并支持询问,求出一个子集,在满足最大公共子区间最小的前提下,最小公共超区间的最小值。最小公共超区间指包含集合中所有区间的最小的区间。 首先选取的集合只包含两个区间。 分开讨论,如果所有区间的最大公共子区间不为空,那么一定有一个区间卡在右端点,另一个卡在左端点,只用选这 阅读全文
posted @ 2021-06-08 14:37 7KByte 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 先考虑 \(60\) 分做法,每种颜色恰好选择一个。 那么最优值一定是全部选最小的,最大值一定是全部选最大的。 经典贪心模型,我们用 \(m\) 个指针表示每种颜色选到了第几个,每次从选择一个指针向后移动一格,同时用堆维护当前最小的状态,可以做到 \(\mathcal{O}(N+MK)\) 的时间复 阅读全文
posted @ 2021-06-08 10:28 7KByte 阅读(213) 评论(1) 推荐(1) 编辑
摘要: 给定一个边权为 \(0/1\) 的完全图,对于每个起点 \(i\) 构造一条最短的,经过所有点,且边权最多只变化一次的最短路径。 首先要覆盖所有点,所以路径长度不可能优于 \(n-1\) 条边。 所以我们考虑构造长度为 \(n-1\) 条边的方案。 考虑归纳法,如果前 \(k-1\) 个点构造出了 阅读全文
posted @ 2021-06-07 20:47 7KByte 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 考虑依次填入每个位置。 最后一个位置只能填 \(d_i=n\) 的位置,第 \(k\) 个位置只能填 \(d_i\ge k\) 的位置。 我们随着 \(k\) 的减小,决策集合扩大。 那么对于第 \(n\) 个位置,一定选择 \(d_i=n\) 中最大的 \(i\) 。依次类推,第 \(k\) 个位 阅读全文
posted @ 2021-06-07 17:02 7KByte 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 给定一个 \(n\times m\) 的网格图,生成一颗直径为 \(k\) 的树。 首先不难得到一个粗略的上下界。直径不可能超过 \(n\times m -1\) ,不可能小于 \(n+m-2\) 。 但是手算一下 \(2\times 2\) ,\(2\times 4\) 之类的网格,发现也无法构造 阅读全文
posted @ 2021-06-07 16:25 7KByte 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 数数综合题。 对于子任务 \(1\) 直接枚举所有点的颜色,同时记录一下当前是否满足条件,时间复杂度 \(\mathcal{O}(nk^n)\) 。 对于子任务 \(2\) 点数很小,考虑状压 \(\rm DP\) 。 我们定义状态 \(f[i][S]\) 表示使用恰好 \(i\) 种颜色,其中状态 阅读全文
posted @ 2021-06-07 15:10 7KByte 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 结论:无论怎么走后手一定赢。 这应该是这道题中最难想到的。 这里的一定赢是指不用考虑任何策略,都能躺赢( 反证法,假定先手赢了,此时场上有奇数个位置被填了,那么一定存在去掉空格后相邻的两个格子颜色相同,它们之间还能再填至少一个,所以后手必胜。 然后就非常简单了,我们计算最终状态,如果最终状态有 \( 阅读全文
posted @ 2021-06-07 12:50 7KByte 阅读(72) 评论(0) 推荐(0) 编辑