字符串处理
SprintfWater
My English name is SpringWater
展开
-
11988 - Broken Keyboard (a.k.a. Beiju Text)
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3139题目大意:给定一个字符串,内部含有”【“和”】“光标转移指令,【代表光标移向文章头,】代表光标移向文章尾,问最终在屏幕上显示的字符串序列是?解题题报告人:GHQ(S原创 2012-08-30 15:42:48 · 2703 阅读 · 0 评论 -
hdu 4513 吉哥系列故事——完美队形II(拓展KMP算法)
采用在数字之间插入不可能数据(-1)如:1 2 1变为:-1 1 -1 2 -1 1 -1利用性质:p[i] >= min(rem.right - i, odd[rem.left + (rem.right - i)])#include #include #include #define MAXN 100005int a[MAXN * 2];原创 2013-03-23 11:57:47 · 2466 阅读 · 0 评论 -
bm算法
1、概述在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前相当有效又容易理解的一种,一般情况下,比KMP算法快3-5倍。BM算法在移动模式串的时候是从左到右,而进行比较的时候是从右到左的。常规的匹配算法移动模式串的时候是从左到右,而进行比较的时候也是是从左到右的,基本框架是:[cpp] view plaincopy转载 2013-07-29 20:50:56 · 1176 阅读 · 1 评论 -
BM算法实现源代码
void preBmBc(char *x, int m, int bmBc[]) { int i; for (i = 0; i < ASIZE; ++i) bmBc[i] = m; for (i = 0; i < m - 1; ++i) bmBc[x[i]] = m - i - 1;} void suffixes(char *x, int m原创 2013-07-29 20:40:48 · 2074 阅读 · 2 评论 -
后缀数组模板
参考大神:罗穗骞论文基本定义子串:字符串 S 的子串 r[i..j],i≤j,表示 r 串中从 i 到 j 这 一 段 ,也就是顺次排列 r[i],r[i+1],...,r[j]形成的字符串。后缀:后缀是指从某个位置 i 开始到整个串末尾结束的一个特殊子串。字4IOI2009 国家集训队论文符串r 的从后缀数组第 i 个字符开始的后缀表示为S原创 2013-04-04 23:06:41 · 2933 阅读 · 1 评论 -
hdu 4545 魔法串(金山居)
就是一个求最长公共子序列的水题#include #include #include #include using namespace std;#define MAXN 1005int dp[MAXN][MAXN];char s1[MAXN], s2[MAXN];char ch1[2], ch2[2];bool hash[128][128];int Max(int a原创 2013-05-17 21:17:09 · 2000 阅读 · 1 评论 -
hdu 4523 威威猫系列故事——过生日
import java.io.*;import java.math.*;import java.util.*;public class Main{ public static void main ( String [] args ) { Scanner cin = new Scanner(System.in); BigInteger m,原创 2013-03-24 22:09:16 · 1263 阅读 · 0 评论 -
hdu 4520 小Q系列故事——最佳裁判
#include #include #include #include #include #include using namespace std;double s[25],temp[25];int main(){ int n; while(scanf("%d", &n) && n) { for(int i = 1; i n; ++i)原创 2013-03-24 22:10:46 · 1103 阅读 · 0 评论 -
Fibonacci数列的通项公式
F(1) = 1,F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3),原创 2013-03-23 22:20:00 · 997 阅读 · 0 评论 -
hdu 3068(扩展KMP)
//http://bbs.dlut.edu.cn/bbstcon.php?board=Competition&gid=23474 一个奇妙的o(n)算法,明天看看~~看完结果总结如下: 算法大致过程是这样。先在每两个相邻字符中间插入一个分隔符,当然这个分隔符要在原串中没有出现过。一般可以用‘#’分隔。这样就非常巧妙的将奇数长度回文串与偶数长度回文串统一起来考虑了(见下面的一个例子转载 2013-03-22 22:03:38 · 927 阅读 · 0 评论 -
HDU3518后缀数组
题目描述:找出一个字符串中至少重复出现两次的字串的个数(重复出现时不能重叠)。解题报告:后缀数组即可解之。枚举字串长度h对于每一次的h,利用height数组,找出连续的height大于等于h的里面最左端和最右端得为之l和r。如果l + h - 1 O(n^2)复杂度。#include#includeusing namespace std;转载 2013-04-04 21:23:37 · 889 阅读 · 0 评论 -
卡诺图
AbstractHDU 4413 Logical Expression乱搞 卡诺图 BodySourcehttp://acm.hdu.edu.cn/showproblem.php?pid=4413Description给定N变量的所有2^N最小项,求一个符合所有最小项的最优美(长度最短的情况下字典序最小)的与或式。Solution天王还是太自信了……转载 2012-10-02 22:55:41 · 1245 阅读 · 0 评论 -
后缀自动机的自我消化
看了http://hi.baidu.com/myidea/item/142c5cd45901a51820e25039大神的blog,在更具自己的理解,借用大神的图,梳理一下自己对后缀自动机的建树过程的理解。p -> a -> b灰线为建树的时候,当在a后面加入b时,从这个a的指向,全部遍历没加入b状态下的所有后缀,设a灰线箭头指向点为a的parent为点原创 2013-09-21 21:07:11 · 7267 阅读 · 2 评论