Loading

上一页 1 2 3 4 5 6 ··· 45 下一页
摘要: 题目要求需要你按照一定的顺序给每个元素分配一个 \(b_i\),使得加上 \(b_i\) 之后它是全场最大,那么倒过来的顺序就是总和的排名了,两者是双射的关系,所以我们 DP 这个顺序即可。 设 \(f_{S, i, j, k}\) 表示已经选择了 \(S\) 内的点,最后一个标号为 \(i\),已 阅读全文
posted @ 2026-03-04 16:03 Alexande 阅读(2) 评论(0) 推荐(0)
摘要: 注意到你的格子数量损失当且仅当恰经过一个顶点,那么答案就是 \(n + m - \gcd ( n, m )\),高维情况做一个子集反演,容斥得到答案是 \(\sum_{S} (-1)^{|S| + 1} \gcd_{i \in S} a_i\),可以通过欧拉反演得到答案为 \(1 + \sum_{d 阅读全文
posted @ 2026-03-04 15:12 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 对于固定 \(a_k\),求解答案是取模类问题里的常见套路,将最大的两个数拿出来或者对每个数取模的结果排序后做一遍双指针。 这样复杂度 \(O(n^2 \log n)\),考虑一个优化,从大到小枚举 \(a_k\),那么如果此时答案 \(\ge a_k\),那么枚举之后的数就没有任何意义了,可以证明 阅读全文
posted @ 2026-03-03 23:11 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 考察将所有 \(a, b\) 的值排序后拿出来。 二分答案,check 一个值 mid 是否合法。 那么此时枚举在值序列中的最小值,那么最大值很容易确定在一个范围内,那么范围内的 \(b\) 肯定需要选择,看有多少个即可,写个差分很容易求得,不难看出除了必须选择的 \(b\),其它值都得选 \(a\ 阅读全文
posted @ 2026-03-03 22:40 Alexande 阅读(1) 评论(0) 推荐(0)
摘要: 闵可夫斯基和练习题。 考察贡献分摊,随便拎出一个结点当根,那么假设点 \(x\) 向父亲连边边权为 \(w_x\),子树内有 \(p_x\) 个关键点,那么贡献为 \(w_x p_x(k - p_x)\),发现这几个值都是子树内可以求解出来的,考虑树形 DP,设 \(f_{i, j}\) 表示 \( 阅读全文
posted @ 2026-03-03 21:38 Alexande 阅读(3) 评论(0) 推荐(0)
摘要: 比较正常的思路是对于两个序列的前常数位用 \(O(len^2)\) 的复杂度放入一个哈希表中,然后对后两个序列再查找,期望一侧运行 \(2^{25}\) 次才有可能碰到一个 \(0\),概率非常低下,并且时间开销非常高。 一个好的思路是,对于四个序列 \(a, b, c, d\),可以钦定找出的 \ 阅读全文
posted @ 2026-03-03 15:56 Alexande 阅读(2) 评论(0) 推荐(0)
摘要: 注意到操作可以形如将一对相邻左括号或者右括号移动到边界上,并且任意改变属性,那么类似于消消乐用线段树写个合并,最后特判一下剩余部分最左边和最右边能否造成贡献即可。 阅读全文
posted @ 2026-03-03 14:54 Alexande 阅读(4) 评论(0) 推荐(0)
摘要: 考察 DP,设 \(f_{i, j}\) 为 \(i\) 结点上的值为 \(j\) 子树内最少更改次数,你发现转移形如 \((min, +)\) 卷积后再加上一个下开口的绝对值函数,这个东西是凸的,对于第二维闵可夫斯基和合并即可做到关于值域的复杂度。由于单次修改只会更改 \(O(n)\) 个结点的 阅读全文
posted @ 2026-03-03 14:51 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 我无法言说我对这道题的赞美。 首先考虑 \(< \frac{n}{4}\) 这个限制比较诡异,我们估计整个题的做法都是依赖这个限制的。 有了 \(\frac{n}{4}\),很难让人不从 \(\frac{n}{2}\) 下手,以下是这个题的做法: 先将第一行操作成 \(0\)。 对于接下来每一行,如 阅读全文
posted @ 2026-03-02 21:51 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 省选原题翻出来思考一下。 考察第一步如何最优,也就是第一步双方应该如何巴巴博弈。 操作相当于给某个结点的右儿子子树删除,需要使得目前剩下的这棵树叶子结点最小值最大,可以设 \(f_{i, j}\) 为 \(i\) 结点子树内不断操作叶子结点最小值 \(\ge j\) 的最小代价,每次转移要么递归到左 阅读全文
posted @ 2026-03-02 19:37 Alexande 阅读(8) 评论(0) 推荐(0)
摘要: 如果没有 \(1\) 操作,只有 \(2\) 操作,怎么办。 需要求解每种前缀最大值的和,使用单侧递归线段树(无论是相同还是不同都可以处理),处理出一个区间的信息二元组 \((mx, sum)\),\(mx\) 表示最大值,\(sum\) 表示以当前区间开头的区间答案,那么不妨考虑处理合并函数 \( 阅读全文
posted @ 2026-03-02 17:11 Alexande 阅读(8) 评论(0) 推荐(0)
摘要: 是不是经典构造题来着。 考虑增量,每次剥离出一个数,相当于将序列分成两个子序列使得其差分数组一致,取有 \(0\) 的那边,如果确定了差值,也就是那个数是多少,可以简单的从前到后扫剥离出来。 比较关键的观察是,此时所有数最大值减去次大值一定是某一个数的绝对值,因为最大值不可能是负数,如果是 \(0\ 阅读全文
posted @ 2026-03-02 15:16 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 对于全体子序列考察的题目可以考虑增量法。 考虑增量,此时我们知道了 \(n\) 的答案,需要推到到 \(n + 1\),不妨先来分析一下 \(n\) 时的答案形式长什么样: 所有子序列的和排成一排,有一些相邻对满足条件。 这很简单对吧,考虑令此时这个集合为 \(S\),不妨来分析一下 \(S + a 阅读全文
posted @ 2026-03-01 21:32 Alexande 阅读(2) 评论(0) 推荐(0)
摘要: 非常精妙的一个题目。 考察操作形式,注意到一定形如操作若干个不交划分区间,使得每个区间都依赖于一个数转移而来,具体证明是,考虑将操作转化为前缀和上的拓展,那么必定拓展成若干个连续段,使得前缀和数组不降,进而得证,根据这一点,可以很简单的写出 \(O(n^3)\) 做法。 我们不以区间为转移终点,不妨 阅读全文
posted @ 2026-03-01 21:14 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 首先考虑字典序最小,一位一位考虑,先考虑 \(b_1 = a_{a_1}\)。 那么如果 \(a_1 = -1\),显然,让 \(a_1\) 填入 \(1\) 是最好的,这样后面不确定的位置全部填入 \(1\),可以使得 \(1\) 的数量尽可能多。 如果 \(a_1\) 确定,那么依次一位一位确定 阅读全文
posted @ 2026-03-01 20:34 Alexande 阅读(3) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 45 下一页