Loading

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 45 下一页
摘要: 发现倒过来之后结构串的长度一定形如 \(1, 2, 3, ..., ans\),思考 DP,设 \(f_i\) 为以 \(i\) 结尾最后一个串最长是多少,发现有 \(f_{i + 1} \le f_i + 1\),因为 \(i + 1\) 的起始位置如果在 \(i\) 之前干脆把 \(i\) 的起 阅读全文
posted @ 2025-12-24 11:58 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 写不明白高维前后缀 min 的来了. 首先发现可以暴力连 \(2^k \times 2^k\) 条边,可以做到 \(O(k \times 4^k)\) 的复杂度. 但是你发现实际上有用的边只有 \(O(3^k)\) 条,这是因为取 \(and, or\) 需要满足两个数之间是子集或是超集的关系,用二 阅读全文
posted @ 2025-12-23 09:58 Alexande 阅读(6) 评论(0) 推荐(0)
摘要: 太不牛了。 首先看到要求二分图上匹配条件,想到的就是在任意完美匹配上做调整,不难证明对于两种不同的完美匹配,若一种可以调整至解,那么另一种同样也可以调整至解。 随便找出一个完美匹配,如果黑边数是偶数直接数出即可,否则,从 dinic 反悔的角度上来看(我们姑且认为每条边都是有向边且 dinic 跑完 阅读全文
posted @ 2025-12-23 08:10 Alexande 阅读(13) 评论(0) 推荐(0)
摘要: 容斥系数大神的含金量。 首先考虑 \([f(P) = f(Q)]\) 一看就不是很好办,我们需要容斥,容斥出来的结果是: \[[f(P) = f(Q)] = \sum_{S \subseteq P} \sum_{T\subseteq Q} 2^{|S \cap T|} (-1)^{|S| + |T| 阅读全文
posted @ 2025-12-22 21:27 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 想清楚了就真不难,个人认为比追忆略简单一点。 首先发现这个操作本质上就是告诉你可以合并一些数,感受一下会发现最后相当于保留一些数,使得每个数都能由一段区间转移过来,且这个区间内的数的贡献形式是 +-+-... 依次类推的。 接下来一个比较重要的观察是假设对于一个位置 \(x\),由区间 \([l, 阅读全文
posted @ 2025-12-22 20:20 Alexande 阅读(15) 评论(0) 推荐(0)
摘要: hash: #include <bits/stdc++.h> using namespace std; // #define int long long #define fir first #define sec second #define mkp make_pair #define pb pus 阅读全文
posted @ 2025-12-22 17:30 Alexande 阅读(11) 评论(0) 推荐(0)
摘要: 首先这种题目肯定要考虑一下 \(x, y\) 在同一连通块内的充要条件,比较形式化的刻画是将笛卡尔树划分成若干左链。 第一点就是 \(p_x < p_y\),不满足这个那么绝对不在同一个左链里了,毕竟在同一个左链里的必要条件是满足严格偏序关系。 第二点是中间不能有数比 \(p_y\) 还大,不然肯定 阅读全文
posted @ 2025-12-22 16:44 Alexande 阅读(7) 评论(0) 推荐(0)
摘要: 不是使用 hint 自动机把我创飞了. 首先原本是想相邻两个数如果想要除完之后相同或者连续则 \(t\) 必定是一段区间,然后后面不知道干啥. 正确解法是发现 \(0 \le t < m\) 时那么 \(\frac{a_i + t}{m}\) 最多只会有两种值,我们使用线段树维护全局答案,那么每次 阅读全文
posted @ 2025-12-22 15:36 Alexande 阅读(10) 评论(0) 推荐(0)
摘要: 首先列出一个 DP 转移式子,发现是可以简单 \(O(n^2)\) 做的. 发现是恰好取满 \(k\) 是最优的,恰好让我们想到 wqs 二分,某些细节的地方需要调整一下,不过总体来说并不困难就是了. 阅读全文
posted @ 2025-12-22 15:00 Alexande 阅读(9) 评论(0) 推荐(0)
摘要: 这种最短路题目做出老茧了。 首先题目肯定是从后往前做,不然你没法做,设 \(dis_i\) 表示从 \(i \to n\) 的答案,那么对于一个点 \(x\) 的所有出边 \(v\),如果想要取到 \(dis_v + 1\) 那么就必须把 \(> dis_v\) 的都给办掉,这个时候花费一些操作,然 阅读全文
posted @ 2025-12-22 08:34 Alexande 阅读(5) 评论(0) 推荐(0)
摘要: 这种平均值的题目都可以思考一下二分或者取特殊值的情况(本题便是)。 结论是,\(k = 1\) 时该式子必然能够取到最大值,利用数学归纳法以及反证,如果存在 \(k > 2\) 能够取到比 \(k = 1\) 还大的,不断扔掉最小的那一个,只保留最大的那一个,此时平均值显然更大,证毕。所以我们现在的 阅读全文
posted @ 2025-12-21 23:46 Alexande 阅读(13) 评论(0) 推荐(0)
摘要: 考场上会 \(40pts\),写了 \(30pts\)。 首先你发现这个 \(l \ge \frac{n}{2}\) 的性质很不对,它限制了你的区间必须经过序列中点,我们来思考一下这个性质怎么做。 首先分成序列左半部分和右半部分考虑,比较显然的做法是,对于左半部分的每个点,求出其经过序列中点所有区间 阅读全文
posted @ 2025-12-20 16:21 Alexande 阅读(18) 评论(0) 推荐(0)
摘要: 设 \(f_{i, j}\) 为前 \(i\) 个最后以 \(j\) 结尾的方案数。 那么考虑转移,比较经典且我之前做过的例子是在 DP 转移过程中容斥,考虑将所有可能目前方案数减去最后恰好有 \(len\) 个重复元素的方案数,转移是比较经典的。 好的兄弟们现在你会做 \(k \le 100\) 阅读全文
posted @ 2025-12-20 15:37 Alexande 阅读(9) 评论(0) 推荐(0)
摘要: 首先对于数据范围要有一定敏感度,那么对于 \(k\) 单次求取很可能是 \(O(n)\) 复杂度,或者对于所有 \(k\) 做一个 \(O(n^2)\) 的 DP 之类的做法。 观察到,不确定根的情况是非常难搞的,整个路径信息都会遍历,所以我们其实不太好根据这个东西做换根,但是此时对于每个根显然是无 阅读全文
posted @ 2025-12-20 10:10 Alexande 阅读(8) 评论(0) 推荐(0)
摘要: 首先我觉得非常重要的一点就是分析出这个题不能 polylog 做。 先辈曾经说过,与集合类操作有关的复杂问题基本上不能 polylog 做,这个题就有点倒水清空的意思。不过更直接的步骤是,你感觉自己 polylog 不太会,于是想一想根号做法。 我只会根号 log。 首先经典结论是每一段长度单调不减 阅读全文
posted @ 2025-12-18 16:30 Alexande 阅读(22) 评论(0) 推荐(0)
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 45 下一页