字符串
一些字符串方面的编程题
NeverMoreH
^_^
展开
-
hdu5384(AC自动机+纪录重复单词出现的次数)
题意: 给出n篇文章,m个单词,输出每篇文章中单词出现的次数,其中单词会重复。 思路: AC自动机模板题,添加一个单词的结尾标记记录即可。这里我们用了kuangbin的模板。 代码: #include #include #include #include #include #include using namespace std; string str;原创 2015-08-13 16:29:55 · 883 阅读 · 0 评论 -
poj3261(求至少出现k次的可重叠的子串的长度)
题意: 给出n和k,n代表数字的个数,k代表你要求至少出现k次的,下面是n个数字,求出在其中至少出现k次的可重叠的子串的长度。 思路: 类似于1743但又不同于1743,思路大体上差不多,二分答案+判定。 还是分组,然后看每组的个数是否大于k就ok了。 代码: #include #include #include #define maxn 20005 int wa原创 2015-07-25 17:18:21 · 525 阅读 · 0 评论 -
C++的黑科技 利用一个字符对字符串进行分离
代码:#include #include using namespace std; int main() { char sentence[]="This is a sentence with 7 tokens"; char *tokenPtr=strtok(sentence," "); while(tokenPtr!=NULL){ cout<<tokenP原创 2015-07-29 19:25:58 · 785 阅读 · 0 评论 -
hdu2222(看一些单词哪些在模式串中出现过)
转载自:http://www.cppblog.com/mythit/archive/2009/04/21/80633.html 题意: t组测试数据,每组有n个单词和一个模式串,问n个单词有多少个在模式串中出现过。 思路: 做的第一道AC自动机模板题。。。 代码: #include #include #include using namespace std;转载 2015-07-27 09:49:59 · 376 阅读 · 0 评论 -
poj1743(后缀数组:最长不可重叠子串长度)
链接:http://poj.org/problem?id=1743 题意:给你n个数字,挨个作差,求这n-1个数字的最长不可重叠子串长度。 思路:罗大牛就是6。看了罗牛的后缀数组PDF。这道题是后缀数组的基础题,我们可以二分答案+判定。如何判定?假设我们当前二分的答案是k,我们把后缀按字典序排序,同时按k分组,保证每一组内的所有的height值都>=k。这样,如果存在长度是k的子串,一定会原创 2015-07-25 16:27:01 · 357 阅读 · 0 评论 -
uvalive4842(AC自动机+DP)
题意: 给出猴子打字时打某个字母的概率,猴子最多可以敲键盘m次,问得到的长度是m的单词包含模式串的概率。 思路: AC自动机+dp。 首先,我们用模式串构造一个AC自动机,用dp[i]][j]表示当前猴子正在敲第i个字母且我们在自动机的第j个节点上的概率,转移方程就很好想了,正着dp就可以,具体看代码吧。 代码: #include #include #include #原创 2015-08-29 20:35:36 · 392 阅读 · 0 评论 -
hdu5442(2015长春网络赛F题)
题意: 给出一个字符串,只由‘a’~‘z'组成,字符串是一个首尾相接的串。我们要找到一个起点,顺时针或者逆时针的读这个串,找到字典序最大的读法,如果有多种,输出起点坐标小的那个,如果起点坐标一样,输出顺时针的那个。 思路: 把串变成倍长的,反着再处理一次。 坑死我了。。。用罗穗骞的da算法超时,用dc3RE,用了个网上找的,过了。 代码: #include #incl原创 2015-09-17 17:01:15 · 452 阅读 · 0 评论