首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
POJ 3167 Cow Patterns(模式串浮动匹配)
】的更多相关文章
POJ 3167 Cow Patterns(模式串浮动匹配)
题目链接:http://poj.org/problem?id=3167 题意:模式串可以浮动的模式匹配问题给出模式串的相对大小,需要找出模式串匹配次数和位置. 思路:统计比当前数小,和于当前数相等的,然后进行kmp. 比如说模式串:1,4,4,2,3,1 而主串:5,6,2,10,10,7,3,2,9,那么2,10,10,7,3,2就是匹配的 code: #include <cstdio> #include <cstring> #include <vector> usi…
POJ 3167 Cow Patterns (KMP+前缀和)
题意:给你两串数字,长度分别为n和m,数字大小在[1,25].当后一串数字每个数字的排名位置与前一串数字(任一长度为m的子串)每个数字的排名位置一致时就完全匹配,最后求哪些位置是完全匹配的. 例如:1 4 2 5 3 6 与 1 3 2 4 答案就是:1 3(第一串数字的第一个位置开始与第三个位置开始) 挺难想的一个题,我们需要使用dp的思想加前缀和进行KMP匹配 首先,两串数字串完全匹配就可以想到KMP,这样我们就只需要解决一个问题:两个数字怎样才算是“相等”(这儿并不是值一样就“相等”).…
AC自动机 - 多模式串的匹配 --- HDU 3695 Computer Virus on Planet Pandora
Problem's Link Mean: 有n个模式串和一篇文章,统计有多少模式串在文章中出现(正反统计两次). analyse: 好久没写AC自动机了,回顾一下AC自动机的知识. 本题在构造文章的时候需要仔细一点,其他没什么Trick,和普通AC自动机做法一样: build Trie ---> build Fail_Ptr ---> matching_and_count Time complexity: O(N*L+M) Source code: /* * this code is m…
AC自动机 - 多模式串的匹配运用 --- HDU 3065
病毒侵袭持续中 Problem's Link:http://acm.hdu.edu.cn/showproblem.php?pid=3065 Mean: 略 analyse: AC自动机的运用. 这一题需要将模式串都存储下来,还有就是base的取值一定要弄清楚,由于这题的模式串都是大写字母所以我们可以通过剪枝来加速. Time complexity:o(n)+o(ml) Source code: ;; ; ; ; ; ; ||) ) ; ;;;}…
POJ 3461 Oulipo(KMP,模式串在主串中出现次数 可重叠)
题意:给你两个字符串p和s,求出p在s中出现的次数. 显然,我们要先把模式串放到前面,之后主串放后面,中间隔开,这样就可以根据前缀数组的性质来求了. 我先想直接把p接到s前面,之后求Next数组对strlen(p)取余==0的就可以,之后WA.最后发现A AASSAAS的时候有bug,只有又想到在p和s中间加个不可能出现的字符'$'就可以了,接着就A了. #include <bits/stdc++.h> using namespace std; const int INF=0x3f3f3f3f…
【poj 3167】Cow Patterns(字符串--KMP匹配+数据结构--树状数组)
题意:给2个数字序列 a 和 b ,问按从小到达排序后,a中的哪些子串与b的名次匹配. a 的长度 N≤100,000,b的长度 M≤25,000,数字的大小 K≤25. 解法:[思考]1.X 暴力.枚举 a 中的子串,选出来排序后比对名次.O(n* m log m *m)=O(n*m^2*log m). 2.X 暴力+树状数组优化.枚举 a 中的子串,选出来后比较前缀名次(P.S.这种转化常出现,比如:[洛谷 p3368]模板-树状数组 2(数据结构) 就是将个体转化为前缀.),看…
POJ 3461 Oulipo(模式串在主串中出现的次数)
题目链接:http://poj.org/problem?id=3461 题意:给你两个字符串word和text,求出word在text中出现的次数 思路:kmp算法的简单应用,遍历一遍text字符串即可,当前匹配的字符数达到word字符串的长度,即可确定word字符串出现一次了. code: #include <cstdio> #include <cstring> using namespace std; ; ; char word[MAXM]; char text[MAXN];…
AC自动机 - 多模式串的匹配运用 --- HDU 2896
病毒侵袭 Problem's Link:http://acm.hdu.edu.cn/showproblem.php?pid=2896 Mean: 略 analyse: AC自动机的运用,多模式串匹配.就是有几个细节要注意,在这些细节上卡了半天了. 1)输出的网站编号和最终的病毒网站数不是一样的: 2)next指针要设128,不然会爆栈: 3)同理,char转换为int时,base要设为31: Time complexity:o(n)+o(ml) Source code: ;; ; ; …
HDU-2087-剪花布条 【KMP】(求模式串的匹配个数——与已匹配的字串不交)
题目链接:https://vjudge.net/contest/220679#problem/C 剪花布条 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) …
POJ 3167 Cow Pattern ★(KMP好题)
题意 给你一个数字序列S,再给一个数字序列pattern,S和pattern中的数字都是1到s(s<=25).每个序列里的数字都有个排名,也就是第几小,现在我们要用pattern来匹配S.在本题中匹配是指每个数字的排名都一样,即同是第k小,最后输出匹配的所有位置. 思路 KMP好题,对KMP的理解又透彻了一点点~ 我们考虑两个字符串A,B 在此题中,A[1],A[2],-,A[k]与B[1],B[2],-,B[k]匹配条件: 若A[1],A[2],-,A[k-1]与B[1],B[2],-,B[k…