随笔分类 -  -----字符串处理 1.kmp算法

摘要:题目链接:2016-2017 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2016) C Castle 题意: 初始长为 N 的串 S,以及一个空集合 T。下列有 E 个操作: 1 c :在 S 串尾添加字符 阅读全文
posted @ 2017-10-05 20:57 bin_gege 阅读(444) 评论(0) 推荐(0)
摘要:题目链接:hdu 6153 A Secret 题意: 给你两个字符串a,b,问你对于b的每个后缀在a中出现了多少次,然后输出sum{每个后缀的长度*该后缀在a中出现的次数}。 题解: 将a,b反转一下,然后跑一下kmp,在途中记录一下哪些位置匹配到了。 然后再倒着统计一下答案就行了。 1 #incl 阅读全文
posted @ 2017-08-20 19:20 bin_gege 阅读(232) 评论(0) 推荐(0)
摘要:题目链接:poj 2406 Power Strings 题意: 给你一个字符串,让你找出这个字符串的最大循环次数,及最小循环节。 题解: 用kmp的nxt数组搞搞,L=j-nxt[j],为前缀j的最小循环节。 1 #include<cstdio> 2 #include<algorithm> 3 #i 阅读全文
posted @ 2017-07-30 21:16 bin_gege 阅读(128) 评论(0) 推荐(0)
摘要:题目链接:hdu 5782 Cycle 题意: 给出两个字符串,判断他们每一个前缀是否循环同构,循环同构的意思就是,字符串首位相接拼成一个环,两个环通过旋转可以相等。 题解: 传送门 1 #include<bits/stdc++.h> 2 #define mst(a,b) memset(a,b,si 阅读全文
posted @ 2017-07-20 15:05 bin_gege 阅读(182) 评论(0) 推荐(0)
摘要:题目链接:Educational Codeforces Round 25 F. String Compression 题意: 给你一个字符串,让你压缩,问压缩后最小的长度是多少。 压缩的形式为x(...)x(...) x表示(...)这个出现的次数。 题解: 考虑dp[i]表示前i个字符压缩后的最小 阅读全文
posted @ 2017-07-19 00:12 bin_gege 阅读(250) 评论(0) 推荐(0)
摘要:题目链接:Educational Codeforces Round 21 G. Anthem of Berland 题意: 给你两个字符串,第一个字符串包含问号,问号可以变成任意字符串。 问你第一个字符串最多包含多少个第二个字符串。 题解: 考虑dp[i][j],表示当前考虑到第一个串的第i位,已经 阅读全文
posted @ 2017-06-27 21:39 bin_gege 阅读(229) 评论(0) 推荐(0)
摘要:题目链接:hdu 4125 Moles 题意: 给你n个数,让你按键值建一个平衡二叉树,然后奇数为0,偶数为1,然后可以遍历这颗树得到一个欧拉序列,现在给你一个串,问你出现了几次。 题解: 建树的时候要引用一个结论:就是新插入的数的父亲,要么是比它大的最小的那个元素,要么是比它小的最大的那个元素。 阅读全文
posted @ 2017-02-02 20:00 bin_gege 阅读(263) 评论(0) 推荐(0)
摘要:题目链接:hdu_2328_Corporate Identity 题意: 给你n个串,让你找这n个串的最大公共子串 题解: 串比较小,暴力枚举第一个的子串,然后KMP判断是否可行 1 #include<cstdio> 2 #include<cstring> 3 #define F(i,a,b) fo 阅读全文
posted @ 2016-08-08 22:55 bin_gege 阅读(187) 评论(0) 推荐(0)