数据结构
文章平均质量分 78
aroslhy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HDU 4416 Good Article Good sentence
求多串的子串并集元素的个数,先用没出现过的不同的字符把多个串拼接,用后缀数组求这个串的不同子串的个数,再减去含有拼接字符的子串的个数。用上述方法求『A、B1、……、BN』中不同子串的个数sumAB和『B1、……、BN』中不同子串的个数sumB,答案就是sumAB-sumB。//2012-09-26 13:22:35 Accepted 4416 671MS 7752K 2071 B G++ Ar原创 2012-09-26 13:36:32 · 1379 阅读 · 3 评论 -
Codeforces 220B Little Elephant and Array
和今年某道多校的题很像。离线+线段树区间修改、单点查询。按右端点将查询区间排序。扫描数列,假设当前数a第x次出现,那么当x>=a时,区间[pos[a][x-a]+1,pos[a][x-a+1]]上所有点+1;当x>a时,区间[pos[a][x-a-1]+1,pos[a][x-a]]上所有点-1,pos[a][x]表示数a第x次出现的位置,为了方便,设所有数第一次出现的位置为0。若当前扫描到的位置有原创 2012-09-01 11:05:59 · 600 阅读 · 0 评论 -
HDU 4419 Colourful Rectangle
分别求出7种矩形并的面积(离散化+扫描线+线段树),再根据容斥关系计算所求颜色面积。//2012-09-24 20:30:42 Accepted 4419 359MS 4740K 2707 B G++ Aros#include#include#include#includeusing namespace std;const int MAXN = 10000+5, MAXM = 20原创 2012-09-24 20:16:50 · 515 阅读 · 0 评论 -
HDU 4436 str2int
把所有串用没出现过的符号相连,建立后缀自动机。记录每个节点所表示的子串对于此问题所求的sum值,再记录这个节点能收到多少个有效子串,于是就能从根结点往后递推sum值了。最后把所有有效节点的sum加起来就是答案。注意:(1)带有前缀零的子串无效;(2)带有分隔符的子串无效。//2013-02-18 13:07:47 Accepted 4436 250MS 12624K 1780 B G++原创 2013-02-20 20:46:34 · 701 阅读 · 0 评论 -
HYSBZ 2806 [Ctsc2012]Cheat
后缀自动机+单调队列优化的DP。参考了http://hi.baidu.com/wyl8899/item/568baeed5034eec2baf37d69,其实后缀处理和DP转移自己都想到了,只差单调队列的优化。做的第一道SAM+DP的题,纪念一下~//bigoceanlhy 2806 Accepted 54516 kb 2336 ms C++/Edit 2346 B 2013-02-20 20原创 2013-02-20 20:50:43 · 984 阅读 · 0 评论 -
Codeforces 235C Cyclical Quest
对第一个串s建立后缀自动机,用父亲指针求出每个节点代表的子串在s中出现的次数。对于串x,复制一个循环节加在后面。在后缀自动机上跑一遍,如果某个节点匹配长度大于x原来的长度,检查父节点是否也大于,是的话用父节点代替当前节点,把预处理出来的该节点的出现次数累加就是答案。//Feb 21, 2013 7:32:16 AM bigoceanlhy 235C - Cyclical Quest原创 2013-02-21 11:46:08 · 1179 阅读 · 0 评论
分享