摘要: 题意:给你一个字符串s,输出该字符串的所有的前后缀长度 思路:利用next数组的性质,我们知道next[i]是指子串长为i的最大公共前后缀 所以 next[next[i]] 意味着 在最大公共前后缀 的子串里再去寻找最大公共前后缀子串 这样找的原因是 完整代码: 阅读全文
posted @ 2019-07-19 11:28 Tianwell 阅读(535) 评论(0) 推荐(0)
摘要: 题意:给你一个字符串 求他的循环节长度 思路:利用 结论:len%(len - next[len]); 当next[len] == 0 则循环节为 1 完整代码: 阅读全文
posted @ 2019-07-19 10:56 Tianwell 阅读(372) 评论(0) 推荐(0)
摘要: 题意:给你一个长度为n的串,输出其存在循环节的子串长度,以及循环节个数 思路:昨天在 HDU-3746 Cyclic Nacklace 上有详细讲到求循环节的原理 ,然后总结一下结论 令 k = len % (len-next[len]) len为字符串的长度 (1)如果next[len] == 0 阅读全文
posted @ 2019-07-19 10:18 Tianwell 阅读(154) 评论(0) 推荐(0)
摘要: 题意:给出一个字符串,然后假设其首尾连接,然后求其最小的循环节 思路: 要求循环节,通过运用next数组的含义。已知next数组为在该长度下的最长的相同前后缀长度 然后利用关系式 sum = len - next[len] , sum - len%sum; 然后就是关系式的解释:(关系刚开始理解了很 阅读全文
posted @ 2019-07-18 18:26 Tianwell 阅读(166) 评论(0) 推荐(0)
摘要: 题意:给出两个字符串,求其中一个在另一个中出现的次数(不可重复匹配) 思路:由于是不可重复的,所以相对于POJ-3461 (允许重复匹配),kmp的移动要进行修改,此时就将子串的下标置为0重新开始匹配即可 完整代码: 阅读全文
posted @ 2019-07-18 17:15 Tianwell 阅读(156) 评论(0) 推荐(0)
摘要: 题意:t个例子,给出两个字符串然后其其中一个串在另一个串中出现的个数 思路:还是利用KMP来进行字符串匹配,然后对其稍微进行修改,在匹配结束后对其进行移动,移动到nex[j] 模板: 完整题解:(cin不加速会超时,也可以换scanf就没有问题) 阅读全文
posted @ 2019-07-18 17:11 Tianwell 阅读(196) 评论(0) 推荐(0)
摘要: 题意:给出t个例子,对于每个例子有两个数字序列p,q,长度为n,m 然后对应输入相应个数的数字,范围:[-1000000, 1000000]你求p对q的最小匹配位置 如果没有则输出-1; 思路: 由于是我做的kmp专题第一道题,所以顺便记录一下自己对于kmp学习理解过程: 先尝试使用暴力过题,也就是 阅读全文
posted @ 2019-07-18 17:01 Tianwell 阅读(200) 评论(0) 推荐(0)
摘要: 题意:剪刀石头布游戏:n个人(编号0~n-1) m 组数据,其中一个为judge,剩下的分为3组,有的组可能没有人,相同组的人出的手势相同, 其中judge出的姿势可以改变而其他人不能改变。最后判断谁是judge并且给出能判断的最小条件序号。 思路:和POJ-1182 食物链 一样,都是涉及到多个种 阅读全文
posted @ 2019-07-17 17:06 Tianwell 阅读(229) 评论(0) 推荐(0)
摘要: 题意: 多组数据输入,每组数据对应n(区间范围1~n) , m个区间关系:给出从a 到 b区间的和为 c ,求判断有几个区间和与之前确立的区间和冲突。 思路: 利用并查集对区间的运用:由于集合与区间性质有很多相似性:比如 交∩ 并∪ ,属于关系等,所以对区间属性的操作,也可以转换为集合上来处理 而在 阅读全文
posted @ 2019-07-17 11:27 Tianwell 阅读(165) 评论(0) 推荐(0)
摘要: 这样简单的题做了半个小时,我学会了一个道理,要认真读题.....(漏读了一个同时交换..) 题意:有n个小朋友围成一圈坐,每个人手上分别有 a ,b ,c...个糖果。老师每吹一次哨音,小朋友将手上的糖果拿出一半,交给其右边的人(顺时针),如果交换后有小朋友的手上糖果数为奇数,则老师将再给他一颗糖果 阅读全文
posted @ 2019-07-16 20:59 Tianwell 阅读(216) 评论(0) 推荐(0)