数据结构
文章平均质量分 79
ok_again
起步级菜鸟
展开
-
hdu 4424 Conquer a New Region
贪心+并查集。题目要求所有点到最一点经过的最小边之和最大。则有,对于两个集合A,B,也就是原树两颗子树,加上一条边使他们连通,有两种连接方案:1、使用A集合中的点作为center,则B集合中的点到center必经过新加入的边。1、使用B集合的点作为center,同理。这样的话我们就想到使新加入的边作为当前所有边的最小边,这样的话就容易计算和比较多了,于是问题就迎刃而解了:先加大边,然后并查集求值。原创 2013-09-25 11:07:20 · 995 阅读 · 0 评论 -
hdu 3966 Aragorn's Story (树链剖分)
入门题,原创 2014-04-10 11:49:33 · 863 阅读 · 0 评论 -
hdu 5008 Boring String Problem
后缀数组+RMQ+二分。原创 2014-09-15 15:26:14 · 939 阅读 · 0 评论 -
树状数组总结(ps:不得不说是神器)
又做了几道树状数组的题,决定放一块儿总结一下;恩,总结一下。。(ps:大牛可以直接跳过。。。)这得从一张图说起;树状数组中用的d【】,每个点都有一定的管辖范围;如d[1]=a[1];d[2]=a[1]+a[2];d[3]=a[3];d[4]=a[1]+a[2]+a[3]+a[4];等等;这样的结构关键是为了,对一个转载 2014-07-18 09:49:29 · 1074 阅读 · 0 评论 -
二维空间最近点对(分治)
分治求解,二维空间最近点对原创 2014-05-12 13:19:01 · 2692 阅读 · 0 评论 -
UVALive - 4513 Stammering Aliens(后缀数组模板)
后缀数组+二分。二分公共长度L,然后O(n)判定就可以了。。#include#include#include#include#include#include#include#include#include#include#define MP make_pair#define LL long long#define CLR(a, b) memset(a, b, sizeo原创 2014-05-06 19:50:49 · 1285 阅读 · 0 评论 -
KD-Tree 总结
hdu 2966 In case of failure 求每个点的最短距离点的距离。直接建KD树,然后查询最近点距离就可以了。此题是比着点击打开链接写的,可以用另一种不用删除和插入的写法。/* hdu 2966 In case of failure 求离每个点最近点的距离。 差方建树。。 有插入删除操作(可以不用插入删除)*/#include #incl原创 2014-03-18 17:53:13 · 2675 阅读 · 0 评论 -
zoj 3765 Lights(Splay)
由于数组开小了,一直TLE。。。检查了一下午,都要哭了,题目没啥好说的,就是一个入门级别的Splay Tree。只有插入,删除,修改操作。#include#include#include#include#include#define LL long long#define CLR(a, b) memset(a, b, memset(a))using namespace std;原创 2014-03-05 20:33:04 · 1048 阅读 · 0 评论 -
[HNOI2002]营业额统计
初学splay,比着cxlove的抄的。。http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove 作为模板用。。只有插入,求前驱,后继。剩下的用途慢慢积累吧。。#include#include#include#include#includeusing namespace std;const原创 2014-03-04 14:28:36 · 930 阅读 · 0 评论 -
poj 3580 SuperMemo(Splay)
基本包括了Splay Tree的所有操作,插入,删除,右移,翻转,区间更新,区间查询。学习Splay Tree推荐一个博客,FZU_Jason。这道题基本上就是抄的他的。。#include#include#include#include#include#define LL long long#define CLR(a, b) memset(a, b, memset(a))usin原创 2014-03-05 14:27:01 · 1068 阅读 · 0 评论 -
hdu 1754 I Hate It (Splay)
点修改,区间查询。可以用线段树,也可以用Spaly树。用来练习Spaly树吧。。学习Splay树的话推荐一个博客:点击打开链接。#include#include#include#include#includeusing namespace std;const int N = 201000;const int INF = 0x3f3f3f3f;int pre[N], key[N原创 2014-03-04 16:55:32 · 1167 阅读 · 0 评论 -
SPOJ NWERC11C Movie collection
树状数组+思想。其实看到这道题的第一眼感觉就是树状数组,然后就没有然后了。。。想了很久,才想到每用一张电影票的时候,我们就把这张票从原栈中删除,然后把这张电影票放在最前面(这句是废话。。当我没说。。),但是我们要怎么样放到前面呢?看看数据范围,我们发现可以把数组开成两倍的,然后就直接在原来数组范围的基础上(前面)放入这个这个数即可。 但是,这样的话我们要怎么记录票现在的位原创 2013-10-26 22:20:11 · 1105 阅读 · 0 评论 -
hdu 5853 Jong Hyok and String
说出来你可能不信,我把数组开成了char,结果检查了一辈子没检查出来。这题乍一看,是后缀自动机。但是后缀自动机都忘完了。于是就想了想,能不能用后缀数组。首先,分析完题目。其实题目让求的就是和询问串的后缀相同的,而且作为P串的子串的种数相同的有多少个。于是。我们可以把P串都接到一块,用不同的字符隔开。每次来一个串,我们可以通过二分,确定公共子串是当前串的所有后缀串前缀(把所有原创 2016-08-16 23:02:40 · 677 阅读 · 0 评论