字符串
文章平均质量分 69
qhpeklh5959
哈工程小白,两个月前正式投入算法学习
展开
-
HDU3695 Computer Virus on Planet Pandora
微微发亮的传送门AC自动机模板题,终于找到了个内存限制比较宽松的。。HDU2222真心是2啊……内存限制太窘迫了。#include #include #include #include using namespace std;int ans = 0;struct ACautomata{ int ch[250001][27], val[250001]; int f原创 2013-05-11 10:46:55 · 798 阅读 · 0 评论 -
POJ3461 Oulipo
题目链接:http://poj.org/problem?id=3461刚刚学会KMP,纪念下#include #include #include #include #include #include using namespace std;char W[100010], T[1000010];int P[100010], lw, lt, ans;void init(){原创 2013-02-22 01:17:48 · 480 阅读 · 0 评论 -
KMP算法
如果机房马上要关门了,或者你急着要和MM约会,请直接跳到第六个自然段。 我们这里说的KMP不是拿来放电影的(虽然我很喜欢这个软件),而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说,给你两个字符串,你需要回答,B串是否是A串的子串(A串是否包含B串)。比如,字符串A="I'm matrix67",字符串B="matrix",我们就说B是A的子串。你可以委婉地问你的MM:“转载 2013-02-22 01:14:57 · 378 阅读 · 0 评论 -
HDU4632 Palindrome subsequence
HDU莫名其妙上不去了。。这个让我情何以堪。。题意是询问一个字符串中回文子序列的个数,说起来常规的回文子串变一变就是这道题的解法,果断还是dp走起。dp[i][j]表示的是[i, j]区间内不同的回文子序列的个数,那么它来自于左边往后一位,右边往前一位的答案,也就是说,dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+1][j-1],然后如果s[i]=s[j],表明[原创 2013-08-02 01:02:25 · 547 阅读 · 0 评论 -
AC自动机模板
终于写出来了传说中的AC自动机,听起来这个名字就非常的吉利,AC啊……此版本AC自动机是照着佳哥的《训练指南》写的,实现的功能是查找主串种出现了多少种模式串。AC自动机简单来说就是在字典树上指失配指针,然后进行匹配,当然,我这个AC自动机是有了Trie图的,效率能更高一些。#include #include #include using namespace std;int ans原创 2013-05-11 10:23:24 · 575 阅读 · 0 评论 -
POJ2001 Shortest Prefixes
题目链接:http://poj.org/problem?id=2001另一种字典树的写法……#include #include #include using namespace std;struct trie{ int ch[100100][30]; int num[100100]; int sz; void reset(){ mem原创 2013-04-15 01:43:14 · 637 阅读 · 0 评论 -
POJ1056 IMMEDIATE DECODABILITY
题目链接:http://poj.org/problem?id=1056这道题用字典树可接,具体思路就是每遇到一个单词都把它插入到字典树之中,然后如果遇到了9,就查询每个单词的词尾标记的数量,如果词尾标记的数量多于1,则证明另外一个单词是这个单词的前缀,输出失败,否则的话输出成功。#include #include #include #include using namespace原创 2013-04-15 01:24:36 · 656 阅读 · 0 评论