题目地址:HDU 4638
先写了一发莫队,莫队可以水过。很简单的莫队,不多说。
代码如下:#include
#include
#include
#include
#include
#include
#include
#include
#includ...
分类:
编程语言 时间:
2015-07-25 12:28:41
阅读次数:
111
题目地址:BZOJ 2038
裸的莫队算法。
代码如下:#include
#include
#include
#include
#include
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2015-07-24 14:28:28
阅读次数:
124
题目地址:HDU 5145
莫队真的好神奇。。这样的复杂度居然只有n*sqrt(n)。。。
裸的莫队分块,先离线,然后按左端点分块,按块数作为第一关键字排序,然后按r值作为第二关键字进行排序。都是从小到大,可以证明这样的复杂度只有n*sqrt(n)。然后进行块之间的转移。
代码如下:#include
#include
#include <math.h...
分类:
其他好文 时间:
2015-07-23 09:31:03
阅读次数:
119
/*莫队算法是离线算法,用来解决已知l,r问你l,r里面值的问题对块进行排序,后面的块通过前面的块左移右移得到,所以可能有的情况能得到O(1)或者较低的复杂度排序的时候除以跟好n(?)本题题意:从l到r区间内问有多少个不同的数,询问很多*/#include#include#include#inclu...
分类:
编程语言 时间:
2015-07-16 21:58:16
阅读次数:
209
题意:取一段区间,求区间中任取两个数相同的概率;思路:所求概率P=(A*(A-1)/2+B*(B-1)/2+......)/(R-L+1)*(R-L)/2化简得P=(A*A+B*B+......+Z*Z-(R-L+1))/(R-L+1)*(R-L); 将询问区间左端点放在同一分块中处理,每次处...
分类:
编程语言 时间:
2015-07-16 15:46:44
阅读次数:
121
题目传送门 1 /* 2 题意:问区间内x的出现的次数 3 莫队算法:用一个cnt记录x的次数就可以了 4 还有二分查找的方法 5 */ 6 #include 7 #include 8 #include 9 #include 10 using namespace std...
分类:
编程语言 时间:
2015-07-16 09:36:31
阅读次数:
130
题意:
平面上有n个点,现在把他们分成k个集合,使得每个集合中的每个点都至少有一个本集合的点之间的曼哈顿距离不大于X,求最小的X。
分析:
转化为求n个点生成完全图的最小生成树的第k大边。接下来有几个重点。
1)根据莫队算法,由于边权是点的曼哈顿距离,每个点只需要跟周围8个方向中每个方向最近的点连边,这样算出的图与用完全图算出的最小生成树一样,涉及的边却大大...
分类:
其他好文 时间:
2015-06-29 11:45:40
阅读次数:
88
二维莫队,对n和m分别分块后,对块从上到下从左到右依次编号,询问以左上角所在块编号为第一关键字,以右下角标号为第二关键字排序,转移时非常厉害。O(q*n*sqrt(n))。#include#include#includeusing namespace std;#define N 201#define...
分类:
其他好文 时间:
2015-06-18 23:35:19
阅读次数:
559
#include#include#include#includeusing namespace std;#define N 50001int v[N=n) return; T[x]+=op; if(!T[x]) --sumv[nu2[x]]; else if(o...
分类:
其他好文 时间:
2015-06-18 23:33:29
阅读次数:
97
莫队算法 分块大法吼 这题乍一看跟HH的项链很像啊……只是多了一个修改操作……然而我就不会做了 分块来搞吧!像糖果公园那样= =按左端点所在块为第一关键字,右端点所在块为第二关键字,修改时间为第三关键字…… 然后暴力搞呗…… 照着糖果公园的代码yy了半天终于是yy出来了……然而跪了……RE...
分类:
其他好文 时间:
2015-06-15 18:32:24
阅读次数:
130