筛法+划分树。枚举因子,类似筛法计算因子数量,复杂度为n/2 + n/3 + ... + n/n ≈O(nlogn)。值域已知,只有删除操作,寻找kth,用划分树就好了O(nlogn)。二分+树状数组也可以,只是复杂度多乘一个logn。/*******************************...
分类:
其他好文 时间:
2015-11-29 10:38:56
阅读次数:
118
1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 const int MAXN = 100010; 8 int tree[30][MAXN]; //each row has numbers 9...
分类:
其他好文 时间:
2015-11-18 14:02:00
阅读次数:
197
划分树 求一段区间第K大值 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 const int MAXN=100010; 8 int tree[30][MAXN]; 9 int sorted[MAXN];....
分类:
其他好文 时间:
2015-11-08 14:50:08
阅读次数:
175
/*Source CodeProblem: 2104 User: 96655Memory: 14808K Time: 1282MSLanguage: G++ Result: AcceptedSource Code*/#include#include#incl...
分类:
其他好文 时间:
2015-11-04 22:56:49
阅读次数:
281
维护一个sum数组,有点划分树的思想,写过划分树的应该能看出来#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=500005;int s...
分类:
其他好文 时间:
2015-11-04 22:43:10
阅读次数:
220
题意:给你一段数字,每次给你一段区间,求这段区间上第K大的数#include using namespace std;const int MAXN=100010;int tree[20][MAXN];//表示每层每个位置的值int sorted[MAXN];//已经排序好的数int toleft[2...
分类:
其他好文 时间:
2015-10-27 23:55:35
阅读次数:
226
Super MarioTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3625Accepted Submission(s): 1660Problem...
分类:
其他好文 时间:
2015-10-10 12:19:57
阅读次数:
179
Kth numberTime Limit: 15000/5000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6951Accepted Submission(s): 2214Problem...
分类:
其他好文 时间:
2015-10-09 13:47:43
阅读次数:
185
题目链接:
http://poj.org/problem?id=2104
解题思路:
因为查询的个数m很大,朴素的求法无法在规定时间内求解。因此应该选用合理的方式维护数据来做到高效地查询。
如果x是第k个数,那么一定有
(1)在区间中不超过x的数不少于k个
(2)在区间中小于x的数有不到k个
因此,如果可以快速求出区间里不超过x的数的个数,就可以通过对x进行二分搜索来求出第k个数...
分类:
其他好文 时间:
2015-08-25 12:06:26
阅读次数:
201
裸的区间第k大问题,划分树搞起。#pragma comment(linker, "/STACK:10240000")#include #include #include #include #include #include #include #include #include #include #i...
分类:
其他好文 时间:
2015-08-21 23:08:10
阅读次数:
225