题目地址:HDU 3333
将询问离线保存下来,然后将数组的点离散化,记录每个值上一次出现的位置。然后枚举数组的数,若当前枚举的数前面出现过,那么就删掉前面出现过的那个位置上的数,更新当前这个位置上的数,然后那些所有询问的右端点为当前位置的就可以通过查询来得到结果了。
更新与查询用线段树来优化。
代码如下:#include
#include
#inc...
分类:
其他好文 时间:
2015-05-06 17:42:00
阅读次数:
146
题意:有n个点,给你w*h的框框,问你最多可以框住几个点,边缘也算。
做法:把每个点x-w/2,y-h/2, 与x+w/2,y+h /2,作一个矩形,可以知道,只有那个框框的中心在这个矩形中就可以覆盖这个点。然后就把所有点的矩形画出来,计算最大重合的层数就行了。实际操作中 可以把每个矩形看作 左下角为 x,y,右上角为x+w,y+h。 也就相当于一起平移。最大重合层数不变。
这题和我之前做得算面积的线段树不同。因为这里关注的不在是面积,所以也就不再关注宽度了。所以这里 线段树里的每个点0-(k-1...
分类:
其他好文 时间:
2015-05-05 21:48:00
阅读次数:
212
题意:问给一堆数排序要交换多少次……这个排序方法读题的时候没看出来是什么……后来百度了一下说是冒泡,也就是说这是一个求逆序数的题。解法:求逆序数有三种方法,线段树,树状数组,归并排序。以上三种方法是按我做的顺序排的,实际最优的是归并和树状数组,线段树有常数。线段树:首先要离散化处理,离散化的方法是给...
分类:
其他好文 时间:
2015-05-05 18:50:05
阅读次数:
125
貌似是先把各个子串处理成各个Hash值,然后离散化,然后这道题就变成询问区间[x,y]中有没有数字k。主席树直接上。。。#include #include #include #include #include #include #include #define rep(i, l, r) for(in...
分类:
其他好文 时间:
2015-05-05 18:49:08
阅读次数:
119
数据结构模版题【连这么神的题都沦为模版题了Orz对数离散化后树状数组套权值线段树。#include #include #include #include #include #include #include #define rep(i, l, r) for(int i=l; il=t->r=blan...
分类:
其他好文 时间:
2015-05-05 18:19:19
阅读次数:
98
题意:
给定长为n的序列与m个询问;
求询问的区间里不相同数字的个数;
n
题解:
在线算法太过高深并不会,所以这道题就要离线做;
分析数据范围,m个询问完全可以存下,1000000的数字也可以hash勉强不用离散化;
那么考虑一段区间的数字种类数,大概就是 1 - R 减去 1 - ( L - 1 )
;
但是因为有重复的数字,对于重复了的数,我们只应该在L-R间计算...
分类:
其他好文 时间:
2015-05-04 08:47:16
阅读次数:
165
E. Infinite Inversions
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
There is an infinite sequence consis...
分类:
编程语言 时间:
2015-05-04 01:17:26
阅读次数:
222
哗啦啦的小彭玉染色问题Time Limit: 1 SecMemory Limit: 256 MB题目连接http://acdream.info/problem?pid=1725Description哗啦啦,哗啦啦~小彭玉很开心,拿着一堆海报就开始宣传明天要开始的哗啦啦大会了~小彭玉很可爱,他的海报都...
分类:
其他好文 时间:
2015-05-02 13:38:14
阅读次数:
126
花儿朵朵时间限制:1000ms | 内存限制:65535KB难度:5描述春天到了,花儿朵朵盛开,hrdv是一座大花园的主人,在他的花园里种着许多种鲜花,每当这个时候,就会有一大群游客来他的花园欣赏漂亮的花朵,游客们总是会询问,某个时间有多少种花儿同时在盛开着?hrdv虽然知道每种花儿的开花时间段,但...
分类:
其他好文 时间:
2015-05-01 16:06:00
阅读次数:
185