字符串
風吹过
这个作者很懒,什么都没留下…
展开
-
uva 1401 - Remember the Word(字典树)
题意:给一个长串(长度1~300000),s(1~4000)个单词,问长串可以完全分解成单词的方案种数? 解析:先保存单词前缀,然后将长串严格从左往右枚举以i位置为首的前缀数,注意剪枝(不重复),一次搜索后的结尾位置的后一个位置作为下次搜索的起始位置(进入优先队列,保证严格从左往右搜索)dp【i】表示以i位置为结尾的方案数,则dp【i】+=dp【w-1】;w为本次搜索的初始位置,一次循环就可以得原创 2013-09-20 12:28:01 · 651 阅读 · 0 评论 -
hdu 4099 Revenge of Fibonacci(字典树+大数加法)
题意:给你一个数字字符串,表示一个整数的前几位( 解析:赤裸裸的字典树,不过要用大数优化,坑爹的是插入时要严格控制小于100000,不能等于;就因为这个wa了好久 #include #include #include #include using namespace std; #define N 100001 int maxx=45; struct node { int m原创 2013-10-30 18:26:22 · 547 阅读 · 0 评论 -
KMP字符串模式匹配详解
KMP字符串模式匹配详解 来自CSDN A_B_C_ABC网友 KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.简单匹配算法 先来看一个简单匹配算法的函数: int Index_BF ( char S [ ], char T [ ], int po原创 2014-03-17 00:17:46 · 1615 阅读 · 2 评论 -
AC自动机算法
AC自动机简介: 首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有字典树Trie和KMP模式匹配算法的基础知识。KMP算法是单模式串的字符匹配算法,AC自动机是多模式串的字符匹配算转载 2014-03-23 21:20:53 · 427 阅读 · 0 评论 -
最长公共上升子序列 LCIS
这里总结一个O(nm)的算法。 设题目给出a[],b[]两个序列。f[j]表示b序列到j的时候,与a[??]序列构成最长公共上升子序列的最优解。其中a[??]序列,从1到n枚举过来。 如果某一个时刻a[i]==b[j],那么显然,我们就应该在0到j-1中,找一个f值最大的来更新最优解。这和求上升子序列是思想是一样的。另外,在枚举b[j]的时候,我们顺便保存一下小于a[i]的f值转载 2014-03-26 22:22:51 · 451 阅读 · 0 评论