题目:区间K的数 注意一个很明显的结论:求区间[p,q]的K就等于求区间[p,q]的q-p+1-k小。#include #include #define N 100005int (int k,int l,int r){ i
原创 2023-06-01 00:00:55
99阅读
可持久化线段树 可持久化线段树是一种神奇的数据结构,它跟我们原来常用的线段树不同,它每次更新是不更改原来数据的,而是新开节点,维护它的历史版本,实现“可持久化”。(当然视情况也会有需要修改的时候) 可持久化线段树的应用有很多,仅以区间K这种简单的问题来介绍这种数据结构。 我们原本建立的线段...
原创 2021-08-04 13:49:41
251阅读
原创 2021-08-05 09:45:04
108阅读
题意:给定一个序列A,接下来又m个询问,每个询问输出
转载 2015-09-21 22:03:00
49阅读
2评论
  昨天写二分wa了一晚上,早上起来重写了一边,莫名奇妙的过了......  这个题与平常的二分有所不同,像最大化最小值这种二分,有时候满足cnt=m的条件有很多,从中找出最小的或最大的,而此题是找到k的值,当满足cnt=m时,即找到了解,  这题有个特别坑的地方: median是中位数的意思,因为这个我也wa了n次,所以进行以下判断:     if(m%2==0) m=m/2;
题目:Dynamic Rankings 题意:N给定一个数组A[1]~A[N],
原创 2023-05-31 17:01:48
78阅读
查找给定区间K的元素:(一)方法一:最小堆:O( n*lg(k) ) (1)思想: 1.建立一个大小为k的最小堆 2.注意:是给定区间,堆中存放的是给定区间的元素,不是给定区间的元素不会存放。说明:这个问题有些类似于n个数中查找最大的top(k)问题;建立大小为k的最小堆,后续的n-k个数,每次和堆顶元素进行比较,比其,则替换堆顶的值,调整最小堆;调整最小堆的复杂度为o(lgk),所以整
原创 2022-12-13 17:06:05
107阅读
传送门其实就是动态维护一个树状数组 , 然后中位数就是区间(k+1)/2 大我们可以对树状数组二进制拆分 , 如果当前答案加
原创 2022-07-05 10:37:28
36阅读
三种做法:1.整体二分: 二分mid 考虑小于mid的修改的影响 但是大于mid的修改可能会干掉小于mid的一些值 所以额外把一个修改变成一个值的删除和一个值的添加 这样就相互独立了! 整体二分,树状数组维护即可。 2.树状数组套动态开点线段树 树状数组每个点维护一个线段树,空间O(Nlog^2N)
转载 2018-12-30 20:10:00
61阅读
2评论
http://poj.org/problem?id=2104 由于这题的时间限制不紧,所以用线段树水一水。 每个节点保存的是一个数组。 就是对应区间排好序的数组。 建树的时间复杂度需要nlogn 然后查询的时候,对于线段树覆盖了的区间,可以直接二分即可。 查询复杂度需要logn^2 所以复杂度需要m
原创 2022-10-20 11:03:46
79阅读
题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 # -*- coding:utf-8 -*- class Solution: def GetLeastNumbers_Solution(self, tinput, k): # write code here #如果输入
转载 2023-06-26 11:30:57
63阅读
比树状数组套主席树不知道高到哪里去了,solve(l,r,L,R)就是对于L,R的操作区间的答案都在l,r区间里,然后递归下去 复杂度O(nlognlogn),每个操作会执行logn次就是o(nlogn),带上bit就是loglogn // pragma GCC optimize(2) // pra
转载 2019-02-11 11:24:00
58阅读
Feed the dogsTime Limit: 6000MS Memory Limit: 65536KTotal Submissions: 23591 Accepted: 7498Description
原创 2022-10-18 16:07:28
72阅读
题目来源:POJ 1442 Black Box 题意:输入xi 输出前xi个数的i的数 思路:试了下自己的treap模版 #include <cstdio> #include <cstring> #include <cstdlib> #include <ctime> using namespace std; struct Node {
转载 2016-01-22 11:57:00
67阅读
题目:http://poj.org/problem?id=2761题意:求区间k大数,很裸思路:很裸的主席树#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N = 100100;
原创 2016-10-30 21:50:13
49阅读
Kth numberTime Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 21499 Accepted Submission(s): 6560Problem DescriptionGive you a sequence and a...
原创 2022-10-18 16:07:33
61阅读
据结构经常忘。。。#in
原创 2017-06-04 13:31:10
100阅读
在未排序的数组中找到 k 个最大的元素。请注意,你需要找的是数组排序后的 k 个最大的元素,而不是 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array解题思路:1.数组无序2.可能有重复元素3
转载 2023-05-31 13:37:21
409阅读
K-th NumberTime Limit:20000MSMemory Limit:65536KTotal Submissions:31790Accepted:9838Case
转载 2013-06-17 21:23:00
99阅读
2评论
K-th NumberTime Limit: 20000MS Memory Limit: 65536KTotal Submissions: 31790 Accepted: 9838Case Time Limit: 2000MSDescriptionYou are working for Macrohard co
原创 2013-06-17 16:43:29
81阅读
  • 1
  • 2
  • 3
  • 4
  • 5