char s[maxn];
int sa[maxn];
int t[maxn], t2[maxn], c[maxn];
int rank[maxn], height[maxn];
int n;
void build_sa(int m)
{
int i, *x = t, *y = t2;
for(i = 0; i < m; i++)
c[i] = 0;
for(i = 0; i < n; ...
分类:
其他好文 时间:
2014-07-22 23:04:34
阅读次数:
293
题意:给一个字符串,问最长的一个子串A,他是前缀,同时是后缀,并且中间也出现过A。并且出现的三个A都不没有重叠部分。
解法:先KMP求出失配数组,然后将所有的是后缀且是前缀的打上标记,然后遍历整个next数组,(对于每个位置的next来说,一直next向前取就是找到此前缀的一个个是整个字符串前缀的后缀,比较绕)暴力枚举判断每个串的所有匹配前缀的后缀是否合法。
代码:/*****...
分类:
其他好文 时间:
2014-05-02 19:36:54
阅读次数:
476
1 #include 2 #include 3 #include 4 #define
INIT_STACK_SIZE 100 5 typedef struct 6 { 7 char * chOperator; 8 int dwtop; 9
}OPND;10 11 void I...
分类:
其他好文 时间:
2014-05-01 20:37:37
阅读次数:
373
题目来源:POJ 3882 Stammering Aliens
题意:给你m一个一个字符串 求至少出现m次的最长字符串 可以在字符串中重叠出现
思路:二分长度l 然后从height数组中找长度大于等于l的前缀
#include
#include
#include
using namespace std;
const int maxn = 40010;
char s[maxn];
in...
分类:
其他好文 时间:
2014-05-01 17:36:34
阅读次数:
334
1. 查看当前所用Perl版本号perl –v2. 一个简单的Perl程序print "hello
world";#这是注释 执行它:Perl helloWorld.txt 文件名后缀可以是pl可以是txt3. 一个稍微复杂点的Perl程序 @line =
`perldoc -u -f atan2....
分类:
其他好文 时间:
2014-05-01 12:48:19
阅读次数:
318
经常看一些网站页面源代码中的css文件和js文件后面带一个问号,后面跟着一连串数字或字符,这是干什么用的?
这个方法我也用过,而且很好用?,它的作用有两个:1、作为版本号,让自己方便记忆、查找;2、作为修改标签,让浏览器重新下载新文件。
其实css文件后面得问号起不到实际作用,仅能当作后缀,如果用问...
分类:
Web程序 时间:
2014-05-01 10:57:31
阅读次数:
367
题目链接:click here~
中文题意思非常明了就不解释了。。思路就是用栈,要是没有括号此题灰常简单,有括号了就要好好理清思路了
1.是数字就直接进队列或者输出,此题因为是有浮点数,所以不推荐进队列,因为要是一个数字还好,可以用queue来写然后用%C来输出,但是小数怎么办?我觉得也许可以队列输出的时候判断下一个char元素是+ - * / 的时候才输出空格那样就要用2个变量来保存,这样的...
分类:
其他好文 时间:
2014-04-30 22:17:40
阅读次数:
282
相信学过数据结构的人都听说过后缀表达式,就是在学习栈的时候。相信大家也都用过计算器windows里面的calc。但是有没发现它只能单步计算,而不能一次计算一个表达式。后缀表达式就有了用武之地,可以一次性计算一整个个式子。科技要为生产服务,所以我就实际去做了一个依据后缀表达式的带有图形化界面的计算器。...
分类:
其他好文 时间:
2014-04-29 13:25:20
阅读次数:
283
由中缀式转换成后缀式,同样使用栈,并运用一些规则来完成。规则介绍如下:
当读到的是操作数,立即输出。当读到的是运算符,则先从栈中弹出优先级高于自己的运算符(不包含括号),自己入栈。读到左括号入栈,读到右括号则将栈中元素出栈并输出,直到遇见左括号(括号都不输出)。输入为空后,将栈元素弹出并输出直到栈空。
注意,最后生成的后缀表达式是考虑了运算符优先级的,再配合逆波兰的无优先级概念这一性质...
分类:
其他好文 时间:
2014-04-29 13:24:21
阅读次数:
375
逆波兰记法又称为后缀记法,把操作符放置于操作数后面,计算过程通常用栈来实现的,通过栈来保存中间结果,使得逆波兰记法没有必要知道任何优先规则。
方法描述:当见到一个数时就把它推入栈中;在遇到运算符时该运算符就作用于从该栈弹出的两个数上,将结果推入栈中。
下面演示计算后缀表达式的过程。
后缀表达式:6 5 2 3 + 8 * + 3 + *
四个数字入栈:6 5 2 3(→栈生...
分类:
其他好文 时间:
2014-04-29 13:14:21
阅读次数:
378