上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 17 下一页
摘要: 问你长度最小的区间使得最大值减最小值>=d。发现这个是单调的,那么我们可以二分答案。判定非常简单,利用滑动窗口来进行最大值最小值的求即可 阅读全文
posted @ 2024-07-19 14:34 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 看到这些\(n^{2}\)的并查集,且每次并查集都是连续的,那么我们就可以利用倍增进行并查集(类似st表,贡献可重复问题)。然后我们可以将所有并查集都加进去后在进行下传。比如在P3295中,我们需要算出最后有多少个连通块,那么我们如果[i][k]和[j][k]在一个连通块里,那么[i+(1<<(k- 阅读全文
posted @ 2024-07-19 14:31 wuhupai 阅读(3) 评论(0) 推荐(0) 编辑
摘要: myee讲的题完全听不懂...... 首先题目让我们求的是长度为\(l~r\)的区间且区间和前k大的区间的权值之和。 首先区间和转化为\((sum[r]-sum[l-1])\)那么我们可以对于每个l都插进一个优先队列,发现l固定,那么只要让sum[r]最大即可。这个利用st表维护l~r的sum的最大 阅读全文
posted @ 2024-07-19 13:32 wuhupai 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 看P8600题面比较易懂 这种问区间的题目,一般都是枚举右端点,找有多少个符合条件的左端点。然后容易发现一个性质,如果一个区间最大数的下标减区间最小数的下标+1等于区间长度,那么这个区间就是一个连号。所以我们可以动态维护\(max(a_{l},...,a_{r})-min(a_{l},...,a_{ 阅读全文
posted @ 2024-07-19 08:22 wuhupai 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 分数规划就是选出一些数使得\(\frac{\sum a_{i}}{\sum b_{i}}\)最大最小的题目,但通常需要转换。下面以找最小首先进行二分答案,那么就是找出一个答案使得\(\frac{\sum a_{i}}{\sum b_{i}}\le k\) \(\sum a_{i}\le k*\sum 阅读全文
posted @ 2024-07-19 08:07 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 首先发现如果要变成同一高度,那么花费应该是一个下凹的函数,那么用三分即可 阅读全文
posted @ 2024-07-19 07:52 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 首先看到要求的是最少多少天,考虑二分答案变成判定。然后我们可以通过二分求出每个点最晚的种植时间。有一个简单的贪心,就是要求严格的先取,不严格的后取,用邻项交换法易证。然后就做好了 证明 阅读全文
posted @ 2024-07-19 07:46 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 给你一些区间,让你用最少的区间数表示出这个区间。(指区间加减,且必须有包含关系) 比如说我们有区间[l,r-1]那么就是将l向r连一条边,r向l连一条边,代表以r为起点的区间可以接上[l,r-1]并花费1的代价,另一侧同理 阅读全文
posted @ 2024-05-25 21:59 wuhupai 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 支持区间加区间求异或。复杂度为\(O(k T \log n \log a_{i})\),ai为值域,空间 \(O(n \log n\log a_{i})\),常数比较小 首先是一个树套树将他转化成整体加,然后我们可以维护一个从低位到高位的01trie那么我们就可以在区间加的时候维护异或了。我们将加k 阅读全文
posted @ 2024-05-25 16:01 wuhupai 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 算法很简单,就是每次找重心,然后dfs一遍子树,求出跨越u的路径答案,然后继续。因为每次子树大小会减少一半,所以时间是有保障的。 主要用于树上的路径的问题。这些问题与树的形态无关,只与每两个点之间的路径长度有关。只要你两个点之间路径长度都是一样的,那么答案也就一样 点分治 求是否有路径=k 直接枚举 阅读全文
posted @ 2024-05-25 15:39 wuhupai 阅读(4) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 17 下一页