就是莫队的模板题/*Memory: 0 KB Time: 1663 MSLanguage: C++11 4.8.2 Result: Accepted*/#include#include#include#include#include#includeusing namesp...
分类:
编程语言 时间:
2015-12-19 20:22:43
阅读次数:
192
题目链接给一些询问,每个询问给出区间[L, R] , 求这段区间的逆序数。先分块排序, 然后对于每次更改, 如果是更改L, 那么应该查询区间内比他小的数的个数, 如果更改R, 查区间内比他大的数的个数。记得离散化。 1 #include 2 using namespace std; 3 #de...
分类:
其他好文 时间:
2015-12-18 18:02:55
阅读次数:
196
由于10^9很大,所以先离散化一下,把给你的这一段数哈希 时间复杂度O(nlogn)然后就是分块莫队 已知[L,R],由于事先的离散化,可以在O(1)的的时间更新[l+1,r],[l,r+1],[l-1,r],[l,r-1]时间复杂度O(n*sqrt(n));代码如下,速度并不是很快(我比较喜欢手动...
分类:
编程语言 时间:
2015-12-15 00:43:41
阅读次数:
224
要使用莫队算法前提 ,已知[l,r]的答案,要能在logn或者O(1)的时间得到[l+1,r],[l-1,r],[l,r-1],[l,r+1],适用于一类不修改的查询优美的替代品——分块将n个数分成sqrt(n)块按区间排序,以左端点所在块内为第一关键字,右端点为第二关键字,进行排序也就是以( po...
分类:
编程语言 时间:
2015-12-10 12:56:15
阅读次数:
234
题意:
给出一个长度为n的自然数序列,m次查询某一区间[l,r]中数集的mex函数值;
n,m
题解:
mex这个东西似乎并不能直接用某些数据结构维护;
首先实际上a[i]太大是没有用的,因为如果在首页数字中隔开了一段,那么比那个数大的数不可能对答案有影响;
这样我们就相当于将所有数离散到了200000的级别;
然后利用莫队算法维护当前区间数的集合, 那之后就是查询第一个未覆...
分类:
其他好文 时间:
2015-10-23 12:04:39
阅读次数:
211
莫队算法。先分块,然后去统计。莫队算法可以解决一类不修改、离线查询问题。构造曼哈顿最小生成树的做法还没有写。写了个直接分段解决的办法。把1~n分成sqrt(n)段。unit = sqrt(n)m个查询先按照第几个块排序,再按照 R排序。然后直接求解。#include#define N 50010#d...
分类:
其他好文 时间:
2015-10-09 13:55:16
阅读次数:
239
2038: [2009国家集训队]小Z的袜子(hose)Time Limit:20 SecMemory Limit:259 MBSubmit:4471Solved:2049[Submit][Status][Discuss]Description作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜...
分类:
编程语言 时间:
2015-10-02 14:58:19
阅读次数:
208
题目大意给出多个询问u , v , 求出u-v路径上点权值不同的个数开始做的是COT1,用主席树写过了,理解起来不难很高兴的跑去做第二道,完全跟普通数组区间求k个不同有很大区别,完全没思路膜拜http://www.cnblogs.com/oyking/p/4265823.html这里利用莫队思想来做...
分类:
其他好文 时间:
2015-09-04 07:31:05
阅读次数:
562
首先旋转坐标系,把每个点可以接收的范围转化成一个正方形。然后建立k-d tree,并记录下每个点在k-d tree上的位置。对询问使用莫队算法,修改$O(\log n)$,查询期望$O(\log n)$。总复杂度$O(n\sqrt{n}\log n)$。#include#include#includ...
分类:
其他好文 时间:
2015-09-03 16:30:53
阅读次数:
192
莫队..用两个树状数组计算.时间复杂度应该是O(N1.5logN). 估计我是写残了...跑得很慢...-------------------------------------------------------------------------#includeusing namespace s...
分类:
其他好文 时间:
2015-09-03 15:15:30
阅读次数:
301