题目链接: http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1581 题目意思:告诉你现在有两个钟,现在两个钟上面都有n个指针,告诉你指针的位置,问你将钟表旋转的话能不能使得两个钟表重合 ps:将钟面的圆分成360000份,告诉你的指针的位置代表正北方向到指针的夹角(顺时针) 分析: 对每个钟的指针,按照与正北方向的夹角(顺时针)(因为题目给的就是顺时针)从小到大排序 然后得到相邻指针间的间距,然后根据KMP跑这些间距,如果能够匹配成功的话…
题意:给你两个串,问你第二个串是从第一个串的什么位置開始全然匹配的? kmp裸题,复杂度O(n+m). 当一个字符串以0为起始下标时.next[i]能够描写叙述为"不为自身的最大首尾反复子串长度". 当发生失配的情况下,j的新值next[j]取决于模式串中T[0 ~ j-1]中前缀和后缀相等部分的长度, 而且next[j]恰好等于这个最大长度. 防止超时.注意一些细节.. 另外:尽量少用strlen.变量记录下来使用比較好,用字符数组而不用string //KMP算法模板题 //hdu…
链接:https://www.nowcoder.com/acm/contest/74/B来源:牛客网 Taotao的电脑带不动绝地求生,所以taotao只能去玩pc版的荒野行动了, 和绝地求生一样,游戏人物本身可以携带一定重量m的物品,装备背包 之后可以多携带h(h为0代表没有装备背包)重量的东西.玩了几天 taotao发现了一个BUG,当装备背包之后,如果可携带重量没有满,就 可以拿一个任意重的东西.(解释看样例)有一天taotao空降到了一个 奇怪的岛上,岛上有n件装备,每个装备都有重量Wi…
传送门 Censor frog is now a editor to censor so-called sensitive words (敏感词). She has a long text P. Her job is relatively simple -- just to find the first occurence of sensitive word w and remove it. frog repeats over and over again. Help her do the te…
这个题目的数据应该是比较弱的,赛场上的时候我们暴力也过了,而且我的kmp居然比暴力还要慢-- 这个变形并不难,跳着选数,把漏掉的位置补上就可以了. 代码如下: #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; #define N 1000005 int a[N],b[N],Ne…
给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出.如果找不到,则输出“Not Found”. 本题旨在测试各种不同的匹配算法在各种数据情况下的表现.各组测试数据特点如下: 数据0:小规模字符串,测试基本正确性: 数据1:随机数据,String 长度为 10510^510​5​​,Pattern 长度为 101010: 数据2:随机数据,String 长度为 10510^510…
贴两道题,其中HDU2087是中文题,故不解释题目, 思路是,一发KMP,但是特别处理最后一位的失配边为0,这样就可以保证“判断完成但是不多判断”. 第二题,很毒瘤的题,要求求出,给定字符串A,B能够缠到一起组成的子字符串长度“长度较小且字典序较小”的一个....要求,假设str1+str2组成答案,则str1的后缀和str2的前缀中相同的部分,只出现一次..于是做法就是,两法KMP,特判答案咯...然而....此题..最有难度的地方是读懂提....看了别人的提解读懂得.... 2087AC代码…
题意: 题目撰写者的英语真是艰难晦涩,看了别人题解,才知道这题题意. 两个forger 一个froger 要蹦到另外一个froger处,他们的最短距离是这样定义的 : The frog distance (humans also call it minimax distance) between two stones therefore is defined as the minimum necessary jump range over all possible paths between t…
 题意:  计算一个字符串在另一个字符串中出现的次数. #include<cstdio> #include<cstring> #include<algorithm> using namespace std; +; +; char t[maxl],p[maxw]; int T,ans,f[maxw]; void getfail(char *p) { int m=strlen(p); f[]=;f[]=; ;i<m;i++) { int j=f[i]; while(j…
逆序KMP,真的是强大! 参考链接,下面有题意解释:http://blog.sina.com.cn/s/blog_6ec5c2d00100tphp.htmlhttp://blog.csdn.net/sdjzping/article/details/8857749http://tech.ddvip.com/2013-09/1380477442203505.html 直接暴力是枚举字符串的后面13个的字母,然后再用KMP匹配,这样的话,就绪要枚举多次,分别是后面的13,12,11....1个字母.但…