自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 spoj 694 Distinct Substrings 705 New Distinct Substrings

<br />spoj 694 Distinct Substrings<br />705 New Distinct Substrings<br />题意:这两个题都是给你一个字符串让你求不相同的子串的个数。<br />思路:因为没个子串都相当于这个字符串后缀的前缀,所以题目转换为求一个字符串所有后缀的不同前缀。<br />比如:ababab<br />saheightsuff<br />50ab<br />3      2abab<br />14ababab<br />60b<br />41bab<br />

2011-04-27 22:02:00 891

原创 poj 3261 Milk Patterns

3261 Milk Patterns题意:这个题和1743很类似,只是这个题可以求的子串重复,并且次数要大于等于k思路:还是利用height数组的性质就是两个排名相邻的两个后缀的最长瓜瓜前缀,如果要他们连续出现的只需要连续的height[i]的值都大于枚举的长度就可以了,因为这个题是可以重复的,所以没有必要去判断sa[i]-sa[i-1]>枚举长度。在枚举长度的时候还是用二分。/* * File: main.cpp * Author: Mi * * Created on 2011年4月

2011-04-27 20:06:00 583

原创 poj 1743 Musical Theme 后缀数组

poj 1743 Musical Theme题目:给一串音符,要你找出一段美妙音符,要满足下面三个条件。1.长度要大于52.没有重叠3.两个串中对应的元素的差值是一个定值 样例:124 5 6 7 8 509 10 11 12 13 14红色和蓝色的的差值为5,思路:其实这个题是求最长不重复子串,当然很容易想到后缀数组的height数组。直接用输入的这个数组显然是不行的,因为他们有个固定的差值。这个题需要转换一下,用后一项减去前一项,这么构造一个新的数组:1 1 1 1  42 -41 1 1

2011-04-27 12:05:00 692

原创 求最长可重复子串

<br />解法:后缀数组。<br />可重复子串必定是两个后缀的公共前缀。所以这里只需要找出height数组里的最大值就可以了。

2011-04-26 21:54:00 598

原创 poj 2774 Long Long Message

<br />poj 2774 Long Long Message<br />题意:求两个字符串的最长公共子串、<br />才开始学后缀数组,拿这个题来练了下手。在求sa的过程中理解基数排序的过程,对LHQ牛的模板理解就会更深入。<br />感觉da的实现没必要理解得很深,主要用的还是height数组。<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月25日, 下午8:33 */#include <stdio

2011-04-26 14:29:00 793

原创 poj 1204 Word Puzzles 字典树

<br />Word Puzzle<br />字典树实现<br />AC自动机实现<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月20日, 下午4:10 */#include <cstdlib>#include <stdio.h>#include <algorithm>#include <string.h>#define KIND 26#define MAX 10005using

2011-04-20 16:38:00 926

原创 poj 1204 Word Puzzles

 Word Puzzles题意:给一个l*c的字母矩阵,给一些单吃,去这个矩阵中找出这些单词的起始位置以及方向,方向按顺时针走,从上开始,分别用A,B,C...表示有8个方向。对ac自动机还是不熟悉啊,老是敲错。有些人超时应该是因为,每个点都去搜一次,其实不用,只用每行每列搜就可以了。/* * File: main.cpp * Author: Mi * * Created on 2011年4月20日, 下午2:57 */#include #include #includ

2011-04-20 16:02:00 796

原创 [HNOI2002]营业额统计 sbt

<br />什么玩意啊,数据都会有问题,最后一行居然没有,必须特判一下,不知道是什么出的数据<br />是一个基本的sbt用到了,Inser,Exist,Pred,Succ<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月17日, 上午10:55 */#include <cstdlib>#include <stdlib.h>#include <stdio.h>#include <string.h

2011-04-17 21:44:00 1736

原创 [NOI2004]郁闷的出纳员

[NOI2004]郁闷的出纳员<br />一个基本的sbt,开始太傻了,居然在删除人的时候我一个一个的去删,还以为很快,结果毫无悬念TLE。其实删除的时候只要T[t].key<mi了,那么就直接把整棵树都删掉<br />要知道有多少个人被开除了,直接tol-T[root].size<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月14日, 下午9:13 */#include <stdio.h>#incl

2011-04-17 09:14:00 2350

原创 poj 2761 Feed the dogs SBT

<br />Feed the dogs <br />查询一个区间上第k大的数,基本思路就是在sbt里只存要查询的区间上的数<br /> <br />先把要查询的区间按起点从小到大排序,这样就可以利用前一个区间上的数,i和i-1有重叠,那么就没有必要把i-1上的数全删除掉,这样可以快一点<br />我开始就没管直接全部删除,然后把i上的数全部插入结果毫无悬念超时。。。<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月1

2011-04-14 10:48:00 982

原创 Dynamic Query System 基本SBT

SBT神器啊,川大校赛出了个基本的SBT,他们搞的数据有点恶心,写了好几次都没过掉http://222.196.33.254/oj/showproblem?problem_id=1716这个是我们学院上的地址,不过好像只有教育网可以登感觉SBT就是size一个信息就可以解决n多动态查询问题了这个可以用来当做模板,自己写的代码可读性还是比较高/* * File: main.cpp * Author: Mi * * Created on 2011年4月13日, 下午7:51 */

2011-04-13 23:24:00 731

原创 poj 3481 Double Queue

<br />用这个题来练习了下SBT,感觉有点奇怪,set居然还快些,没搞懂<br />学sbt可以看陈启峰的论文http://wenku.baidu.com/view/364afa42a8956bec0975e3b1.html还是中文的,很简单<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月13日, 下午3:38 */#include <cstdlib>#include <stdio.h>#

2011-04-13 19:45:00 959

原创 Who's in the Middle

<br />http://poj.org/problem?id=2388<br />题目很简单。<br />拿来练习了下二叉堆<br />/* * File: main.cpp * Author: Mi * * Created on 2011年2月24日, 下午9:06 */#include <cstdlib>#include <stdio.h>#define N 10005using namespace std;/* * */int heap[N

2011-04-11 21:10:00 573

原创 hdu 3065 病毒侵袭持续中

<br />http://acm.hdu.edu.cn/showproblem.php?pid=3065<br />恶心的题目,其实是一个简单的ac自动机,最开始理解错了,我把不是大写字母的全都去掉了<br />其实只要在查询的时候判断一下就可以了,统计没什么就是不想普通的ac自动机那样统计过的词不统计,这个是还可以统计<br />/* * File: main.cpp * Author: Mi * * Created on 2011年4月1日, 下午5:26 */#inclu

2011-04-01 19:27:00 771

原创 hdu 2896 病毒侵袭

裸!只有一点要注意,就是这里面的字符串不只是字母,KIND 应该定义成128,我开始想都没想直接256,mle还有就是读的时候用gets,因为a aaa 这种也算中间有空格的,其它的就是题目说了病毒数不会超过三,所以最多输出三个我遇到的恶心的地方就这几个,注意到了应该就能ac了/* * File: main.cpp * Author: Mi * * Created on 2011年4月1日, 下午3:14 */#include #include #include #

2011-04-01 16:51:00 711

原创 fzoj 2005 Computer Virus on Planet Pandora 福州现场赛

<br />http://acm.fzu.edu.cn/problem.php?pid=2005<br />这题。。。不想说了,当时居然没把题目意思搞清楚<br />The length of the program is at least 1 and at most 5,100,000, no matter in the compressed format or after it is decompressed to original format.<br />这句话,我干,我想对出题人说,能不能

2011-04-01 16:48:00 1957

原创 hdu 2222 Keywords Search

现在正在学ac自动机,找了些资料看了下,其实也没有那么难,先多做些题,熟悉之后再写个专题这个题是一个裸的ac自动机,多敲敲,熟悉熟悉代码。/* * File: main.cpp * Author: Mi * * Created on 2011年3月31日, 下午5:14 */#include #include #include #define KIND 26#define MAX 500005using namespace std;/* * *

2011-04-01 16:35:00 544

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除