POJ
文章平均质量分 83
CMTM4
ACM退役
展开
-
POJ 3261 后缀数组 可重叠的,但是要重叠K次的 最长公共前缀最长是多少
题目如题了啦。论文上的题目刷的还是蛮快的了,自从后缀数组越写越顺……再也不用担心这个那个写错了~~~今晚一定要刷完论文上的题目,这样明天就可以继续去做SPLAY的题目拉~~~ #include #include #include #include using namespace std; const int max_n = 200000 + 10; int a[max_n];原创 2015-02-08 22:03:02 · 443 阅读 · 0 评论 -
反复折腾了POJ上的后缀数组
折腾了最长回文串,和模式串的匹配问题。 发现程序慢如狗! POJ 3461 TLE #include #include const int max_strlen = 1200000 + 10; char pattern[max_strlen], text[max_strlen]; int sa[max_strlen], tub[max_strlen], wa[原创 2015-02-08 17:50:57 · 361 阅读 · 0 评论 -
POJ 1743 后缀数组
题目的实质就是,不可重叠最长重复字串。 对于音调问题,实际上就是几个数字的 1 2 3 4 和 5 6 7 8 是一样。 也就是随便几个数字,f[i] - f[i -1] 和 f[k] - f[k -1] 是一样,就行了。 也就是吧所有数字的差保存起来,求后缀数组,然后二分答案即可。 记住: 答案小于5,算无解。 (最近在学吉他,这是不是和弦的问题……楼教主懂的真原创 2015-02-08 21:24:19 · 349 阅读 · 0 评论 -
POJ 3264 RMQ问题 ST算法
因为之前都是线段树解决RMQ问题,省脑子……(因为写的顺手)…… 但是因为RMQ毕竟常数大,而且其实程序还相对ST要长…… 以前写过ST算法,但是因为每次都在纠结到底+1 呢,还是-1呢, 边界问题处理的我蛋都碎了好几次,这次重新学习了一下ST(sparse table)算法,好好的处理了这些问题的理解。 ST算法: 解决RMQ问题。 RMQ问题: 区间最大值,最小值问题…原创 2015-02-09 10:58:06 · 414 阅读 · 0 评论 -
POJ 3693 重复次数最多的子串是什么?【后缀数组】
听说暴力优化0ms通关。 但是这里要说的显然不是暴力的方法~ 还是喜欢中等大小的字体啦啦啦~ 我知道论文上有讲,但是如果论文上的看懂了,你一定不会在百度搜这个了……我反正当时没看的很明白,大神的解释语言十分精简,精简到了,对于弱B的我,我就看不懂了…… 题目大意: 一个字符串T,他可能里面有一段子串S, S由一个S的子串P重复K次而成。 比如 qwerty a原创 2015-02-09 20:39:28 · 621 阅读 · 0 评论 -
POJ 1195 树状数组详解
这题我主要提供树状数组的讲解。 如果想了解为何是lowbit的问题的话,直接从----A----以下开始看 首先还是老图……大家一定见过的……这个图来吓唬一下大家 当然这个图不好看那,我们换个图。 看! 他们看起来就有表示的区间一样。 最低下的,显然是[1, 1] [2,2]之类的区间 倒数第二层的区间,每个区间长度都是2, 倒数第三层原创 2015-02-11 23:08:38 · 645 阅读 · 0 评论 -
POJ 1804 逆序对问题【分治】【线段树】【树状数组】【平衡树】
至于为何冒泡排序的次数,是逆序对的数量? 这里说一下从小到大冒泡的问题。 对于一个数字k(一开始在数组的k的位置), 在冒泡排序中,只有出现有一个数字在a[k]前面,并且比a[k]要大,这个数字才会交换位置。并且只会向前交换。 显然,对于排序结束后的数列, a[k]前面是不会有比他大的数字了, 同时!a[k]只会和在他前面,比他大的数字交换(冒泡排序中,交换位置的判定原创 2015-02-11 13:15:47 · 739 阅读 · 0 评论 -
POJ 3481 multimap / 平衡树 / splay
题目意思: 0 结束系统 1 K P 把一个叫K的客户,加入系统。他的优先级是P 2 输出最高优先级的客户名字, 同时删掉他 3 输出最低优先级的客户名字,同时删掉他 想法: 平衡树,找最大值最小值即可。 C++这次我试了试multimap,挺好玩的。实际上这题也应该没重复关键字吧~ iterator 迭代器的begin()肯定是最小值原创 2015-02-13 12:21:59 · 476 阅读 · 0 评论 -
POJ 2761 依然是平衡树
题目大意: 先给定一大堆数字,(下标从1开始!!! 我当从0了,WA掉了2次!) 然后给定区间[L, R]问[L,R]区间内,第K大的数字是谁。 先预先读取所有区间,把区间排序。 然后保证平衡树内只有区间内的元素…… 然后每次直接把区间内的元素问题解决掉……时间复杂度略高nlogn而且n特别大,跑了5秒多 2761 Accepted 41原创 2015-02-13 22:27:08 · 456 阅读 · 0 评论