
ACM-高级数据结构
文章平均质量分 55
Helios_nannan
得失成败,都只对自己交代
展开
-
poj 1743 Musical Theme 较为简单的后缀数组+高度数组的应用
传送门:poj 1743 Musical Theme题目大意题意:有N(1 <= N <=20000)个音符的序列来表示一首乐曲,每个音符都是1..88范围内的整数,现在要找一个重复的主题。“主题”是整个音符序列的一个子串,它需要满足如下条件: 1. 长度至少为5个音符。 2. 在乐曲中重复出现。(可能经过转调,“转调”的意思是主题序列中每个音符都被加上或减去了同一个整数值) 3. 重复原创 2016-07-30 18:54:08 · 1587 阅读 · 1 评论 -
spoj 405 求不同子串的个数 后缀数组和高度数组的应用
传送门:spoj 405 求不同子串的个数题目大意求一个字符串不同子串的个数。解题思路后缀数组和高度数组的应用! 因为每个子串都是每个后缀的前缀,那么原问题等价于求所有后缀之间不相同的前缀的个数如果后缀按照sa[1],sa[2]….sa[n]这样的顺序来计算的,那么不难发现每次增加的子串的个数为n-sa[i]+1,但是其中是有height[i]个和前面字符串的前缀相同的,所以对应于每个sa[i]对原创 2016-07-30 21:44:04 · 735 阅读 · 0 评论 -
poj 2104 K-th Number 主席树+超级详细解释
传送门:K-th Number题目大意:给出一段数列,让你求[L,R]区间内第几大的数字!在这里先介绍一下主席树! 如果想了解什么是主席树,就先要知道线段树,主席树就是n棵线段树,因为线段树只能维护最大值或者最小值,要想求出第二大的数字怎么办呢?两颗线段树呗!好,那么第n大呢,就可以构造n棵线段树,这样的内存是显然会爆掉的,那么怎么办呢?因为每一次更新都是更新的是从叶子节点到根节点的一条路,路的长原创 2016-11-02 21:45:12 · 5115 阅读 · 0 评论 -
SPOJ - DQUERY 主席树求区间中不同数字的个数
传送门:SPOJ - DQUERY题目大意给定一个序列,求然后有q次查询求[L,R]区间中不同数字的个数解题思路主席树模版类型题目,离散化,更新查询AC代码#include <cstdio>#include <iostream>#include <map>using namespace std;const int MX = 1e5+5;const int N = MX*20;int n,原创 2016-11-04 18:34:52 · 1209 阅读 · 0 评论 -
hdu 5919Sequence II 主席数的应用 2016CCPC长春
传送门:Sequence II题目大意这个题目读题是个大困难呀,不好读; 给定一个长度为n的串,q次查询每次查询[L,R][L,R]区间中的数字的第一个在整个区间中的位置!强制在线操作;解题思路主席树的套路题目;知道主席树的人一定做过主席树的两种应用的题目就是求给定区间的第K大,还有给定区间[L,R][L,R],问这个区间中不同数字的个数! 这个题目就是对主席树的这两个应用的综合考察,我们先把这原创 2016-11-05 21:10:14 · 462 阅读 · 0 评论