link #思路: 经典套路,通过dfs序将树上修改转化为线性修改,这样问题就转化为了单点修改,区间查询,用树状数组维护。 类似题 #代码: #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; typedef lo ...
分类:
移动开发 时间:
2021-06-15 17:41:05
阅读次数:
0
原理:快速排序需要选择一个元素作为key,然后以key为基准,比key小的放在左边,比key大的放在右边,这是一次过程。一次划分为两个区间,左右区间再用同样的方法进行排序,当最小区间排序完成,则快速排序完成,可返回结果。 key元素选择:每次选择末尾元素作为当前区间的key。 源代码:用户先录入设定 ...
分类:
编程语言 时间:
2021-06-13 10:10:33
阅读次数:
0
这题非常类似 P1972 [SDOI2009]HH的项链,这是数颜色的题目的常见套路。 首先,出现偶数次的数的异或和 转化为 所有数的异或和 与 所有不重复数的异或和 的异或和。 前者是前缀和可以搞定的,后者就是区间数颜色的做法。先处理出每个点的颜色上一次出现位置 \(pre\)。离线询问,按右端点 ...
分类:
其他好文 时间:
2021-06-13 09:35:49
阅读次数:
0
二分法边界思考(续) 本题思路是使相同长度下序列增长要尽可能慢 package leetCode.动态规划; /** * @author km * @date 2021年06月11日 **/ public class LongestIncreasingSubsequence { public sta ...
分类:
其他好文 时间:
2021-06-13 09:19:49
阅读次数:
0
近期做的最好的贪心题之一。 翻了一下官方题解貌似是转化为树上问题然后线段树维护,可能出题人想少了没有想到贪心写法。懂日语的小伙伴可以研究一下Solution 。 第一步不难想到对于所有的星星按 \(Y\) 从小到大排序,这样限制条件转化为选了一颗星星后,接下来不能选择一个区间内的星星。 那么对于当前 ...
分类:
其他好文 时间:
2021-06-10 17:59:31
阅读次数:
0
1 为什么要离散化 连续属性离散化的目的是为了简化数据结构,数据离散化技术可以用来减少给定连续属性值的个数。离散化方法经常作为数据挖掘的工具。 2 什么是数据的离散化 连续属性的离散化就是在连续属性的值域上,将值域划分为若干个离散的区间,最后用不同的符号或整数 值代表落在每个子区间中的属性值。 离散 ...
分类:
其他好文 时间:
2021-06-08 23:30:04
阅读次数:
0
https://ac.nowcoder.com/acm/contest/11244/C 题解: 考虑只需要区间修改,求历史最大值 那么用线段树的话我们需要维护历史标记最大值,当前标记,区间当前最大值,历史区间最大值 其实现在变成求历史K大可以类似维护 我们维护历史标记最大的K个,当前标记,区间当前最 ...
分类:
其他好文 时间:
2021-06-08 23:05:58
阅读次数:
0
简介 简单题, 但是挺考验java数据结构的 code class Solution { public int[][] merge(int[][] intervals) { if (intervals.length == 0) { return new int[0][2]; } Arrays.sor ...
分类:
其他好文 时间:
2021-06-07 20:43:01
阅读次数:
0
时间复杂度:o(logn) 支持: 1.单点修改 2.区间查询:查询一个区间内所有元素的和 对 进行区间查询只需查询 和 然后相减即可(前缀和就是这样进行区间查询的),所以我们可以把区间查询问题转化为求前n项和的问题。 可以用一个数组 维护若干个小区间,单点修改时,只更新包含这一元素的区间;求前n项 ...
分类:
编程语言 时间:
2021-06-06 19:25:12
阅读次数:
0
区间第K小查询 description 给定一个长度为$n$ 的序列,每次对于一个区间$[l,r]$ ,求出这段区间中第$k$ 小的数的值。 \(n\le 10^5\) solution 首先考虑全局怎么做,即询问区间为$[1,n]$ 时。 我们可以建立权值线段树,对于其上的区间$[l,r]$ 记下 ...
分类:
其他好文 时间:
2021-06-06 19:07:20
阅读次数:
0