-------------字符串-------------
yphacker
心之所动,且就随缘去吧
展开
-
ZOJ2104——Let the Balloon Rise
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2104Let the Balloon Rise题目大意:记录气球颜色出现最多的那个,并输出其颜色。这题有多种思路,我这次是用hash做的。#include#include#includeusing namespace std;const原创 2015-05-07 09:11:03 · 732 阅读 · 0 评论 -
2016 腾讯笔试题 最长回文字串(不连续)(dp)
最长回文字串一个字符串有许多子序列,比如字符串abcfgbda,它的子序列有a、bfg、bfgbd,在这些子序列中肯定有回文字符串。现在要对任意字符串求其最长的回文子序列。注意,本文不是解决最长回文子串,回文子串是连续的,回文子序列是不连续的。字符串abcfgbda的最长回文子序列为abcba,长度为5。输入:包含若干行,每行有一个字符串,字符串由大小写字母构成,长度不超过100。原创 2016-04-05 18:40:58 · 3983 阅读 · 0 评论 -
KMP算法详解
KMPKMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。接下来我们先分析三张图,S代表主串原创 2015-08-21 20:44:27 · 1930 阅读 · 0 评论 -
hdu 3613 Best Reward(manacher算法)
Best Reward题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3613解题思路:题目大意:字母表的26个字母都有一个价值,给你一个字符串,将该字符串切成两份,对于每一份,如果是回文串,就获得该子串的字母价值之和,否则该子串的价值为0。求出将字符串切成两份后能够获得的最大价值。算法思想:先用Manacher算法求出原创 2016-04-04 17:20:46 · 1480 阅读 · 0 评论 -
hdu 5442 Favorite Donut(最大表示法+kmp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5442解题思路:题目大意:有一个len长度的环,问有没有 最大的 长度为 len 的 串在 这个环里。如果有的话,且只有一个 ,输出其 开头的下标, 下标从1 开始, 再输出0 表示 顺时针 1 表示逆时针如果多个,输出 开头下标最小的那个。如果 还有 ,就是顺时针原创 2015-09-15 12:59:47 · 458 阅读 · 0 评论 -
hdu 3374 String Problem(最小表示法+kmp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3374解题思路:题目大意:给你一个字符串,每次将最前一个字符放到最后,直到形成一周,然后按照每个字符串出现的先后排个名次,现在要你求出字典序最小的字符串和字典序最大的字符串为RANK几。并输出它们的出现次数,如果出现次数不只一次,那么输出RANK值较小的。算法思想:先用k原创 2015-09-14 22:21:02 · 416 阅读 · 0 评论 -
hdu 2609 How many(最小表示法模板+set判重)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2609解题思路:题目大意:有n个有01组成的字符串,每个字符串都代表一个项链,那么该字符串就是一个环状的结构,求可以经过循环旋转,最后不同的串有多少个。。算法思想:将每个字符串转换成最小串,然后放在set里面去重。最小表示法:循环字符串的最小表示法的问题可以这原创 2015-09-14 21:47:23 · 1229 阅读 · 0 评论 -
hdu 4763 Theme Section(kmp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4763解题思路:题目大意:给你一个字符串,问你是否可以表示为“EAEBE”的形式,E、A、B表示一个字符串,可以为空,输出最长的E串的长度。解题思路:KMP,首先先求出最长后缀,然后用KMP算法判断去掉前后部分后是否存在该串,不存在则缩小长度,直到为0为止。。。AC代码:原创 2015-09-06 21:46:13 · 299 阅读 · 0 评论 -
hihoCoder 1228 Mission Impossible 6(rope大法)
,,,,原创 2015-09-25 12:45:08 · 510 阅读 · 0 评论 -
HDU2072 单词数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072解题思路:找出不同的单词一共有多少个,虽然这题现在看起来很简单,但是初学时可算是不知wrong了多少次呀.AC代码:#include#include#includeusing namespace std;int main(){ char s[100原创 2014-12-12 23:56:55 · 2444 阅读 · 0 评论 -
hdu 5311 Hidden String
官方题解:这个题怎么暴力怎么搞就好了. 可以枚举最长匹配前缀, 和最长匹配后缀, 中间暴力for.这道题比赛的时候就被别人hack了,而且过了依旧是wrong到哭。。。不能说是对字符串不会处理,主要是总犯一些低级的错误,然后找半天。。。然后就伤心泪流呀。。。#include #include #include #include using namespace std原创 2015-08-02 23:06:59 · 328 阅读 · 0 评论 -
hdu 5384 Danganronpa(AC自动机模板题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5384解题思路:题目大意:给你n个字符串主串,和m个模式串,定义f(A,B)为B串在A串中出现的次数,现在对每一个A串都计算∑f(Ai,Bj) (1 对m个模式串建立AC自动机,然后每个主串都放入自动机中,统计主串包含多少B内的串,并输出。算法思想:AC自动机的模板题。。原创 2015-08-28 16:43:53 · 440 阅读 · 0 评论 -
hihoCoder 1039 字符消除
#include #include #include #include #include using namespace std;string solve(const string& str){ int ll =str.size(); if(ll <= 1) return str; vector v; for(int i = 0; i原创 2015-07-31 23:44:22 · 484 阅读 · 0 评论 -
hihoCoder 1036 Trie图(AC自动机)
#include#include#include#includeusing namespace std;#define N 1000010char str[N], keyword[N];int head, tail;struct node{ node *fail; node *next[26]; int count; node() //init原创 2015-07-30 00:16:25 · 350 阅读 · 0 评论 -
hdu 1671 Phone List && POJ 3630 Phone List(静态申请空间)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1671http://poj.org/problem?id=3630解题思路:本来不准备写这封博客的,但是今天一学弟对我说,动态申请空间的这份代码在POJ上交会超时,于是试了试,果然超时了。然后就学会了新的处理字典树的方法,静态申请空间,不需要频繁的调用new,所以效率会更高。。。原创 2015-08-24 14:57:41 · 868 阅读 · 0 评论 -
hihoCoder 1032 最长回文子串 (manacher算法)
#include #include #include #include #define N 1000005using namespace std;char str[N*2];int p[N*2];int main(){ int T; scanf("%d",&T); while(T--){ scanf("%s",str);原创 2015-07-30 00:13:32 · 499 阅读 · 0 评论