题目链接 Description You are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to return quickly k-th order statistics in the…
一道比较经典的数据结构题.可以用多种方式来做. 一,分桶法(平方分解). 根据数字x的大小和区间内不大于x的数字数量cnt的单调性,可知第k大数kth对应的cnt应该满足cnt≥k, 且kth是满足条件的最小的一个,可以二分下界. 关键在于高效找出cnt,对于每个完整的桶,排序以后二分,不完整的桶就直接暴力找. 桶的大小设置为B,那么查询复杂度为O(n/B*log(B) + B). 由于每个桶的不是O(1),需适当减小桶数, 最平衡取法是令:n/B*logB = B.可以得到,B≤sqrt(n…
POJ 2104为例 思想: <挑战程序设计竞赛>中介绍的方法. 分桶法:把一排物品或者平面分成桶,每个桶分别维护自己内部的信息,已达到高效计算的目的. 设一共有n个数,每b个分到一个桶里,并对桶内元素进行排序.给定区间,求小于x的数的个数 对于完全包含在区间内的桶,直接二分查找满足条件的个数,每个桶处理需要O(logb)的时间. 剩余的不完全分布在其他桶的数,逐个查找,每个元素处理需要O(1)的时间. 可以看出,应该使桶的个数比桶内元素个数略少一些. 如果b=n−−√,那么这就叫平方分割,查…
Given an array of integers, find out whether there are two distinct indices i and j in the array such that the absolute difference between nums[i] and nums[j] is at most t and the absolute difference between i and j is at most k. Example 1: Input: nu…
[POJ 2482] Stars in Your Window(线段树+离散化+扫描线) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11294   Accepted: 3091 Description Fleeting time does not blur my memory of you. Can it really be 4 years since I first saw you? I still remembe…
A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 58269   Accepted: 17753 Case Time Limit: 2000MS Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of…
POJ.3468 A Simple Problem with Integers(线段树 区间更新 区间查询) 题意分析 注意一下懒惰标记,数据部分和更新时的数字都要是long long ,别的没什么大坑. 代码总览 #include <cstdio> #include <cstring> #include <algorithm> #define nmax 200000 using namespace std; struct Tree{ int l,r; long lon…
题目大意 给一个长度为n的序列,有m个询问,每次询问一个区间里面第k小的数. 解题分析 静态的区间第k大.复习了一下可持久化线段树. 首先对数值离散化,建一颗权值线段树.按照序列的顺序依次插入,每一个数对应于一个版本的线段树. 对于每个询问[l,r],在第r个版本的线段树和第l个版本的线段树之间进行查询. 本质上来说,可持久化线段树干了一件前缀和的事情,每棵线段树记录了1~i序列的权值信息. 参考程序 #include <cstdio> #include <algorithm> u…
A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 74705   Accepted: 22988 Case Time Limit: 2000MS Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of…
题目链接:id=3468http://">http://poj.org/problem? id=3468 A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 83959   Accepted: 25989 Case Time Limit: 2000MS Description You have N integers, A1, A2, ... , AN. Yo…