ACM KMP 格式输入导致TLE
在写 Oulipo POJ - 3461 时候遇上的奇怪的问题
在格式输入上不一样,提交的时候返回TLE,两段代码如下:
A#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 1000100 int next[MAXN],pLen,sLen;
char p[MAXN],s[MAXN]; //优化过后的next 数组求法
void GetNextval()
{ next[] = -;
int k = -;
int j = ;
while (j < pLen)
{
//p[k]表示前缀,p[j]表示后缀
if (k == - || p[j] == p[k])
{
++j;
++k; if (p[j] != p[k])
next[j] = k; //之前只有这一行
else
next[j] = next[k];
}
else
{
k = next[k];
}
}
} int KmpSearch()
{
int i = ;
int j = ;
int ans = ; while (i !=sLen && j != pLen)
{
//①如果j = -1,或者当前字符匹配成功(即S[i] == P[j]),都令i++,j++
if (j == - || s[i] == p[j])
{
i++;
j++;
}
else
{ j = next[j];
} if(j == pLen) {
ans++;
j = next[j];
} } return ans;
}
int main(){
int t,ans;
scanf("%d",&t);
while(t--) {
scanf("%s%s", p, s);
sLen = strlen(s);
pLen = strlen(p);
GetNextval()
ans = KmpSearch();
cout<<ans<<endl;
} return ;
}
TLE:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define MAXN 1000100 int next[MAXN],pLen,sLen;
char p[MAXN],s[MAXN]; //优化过后的next 数组求法
void GetNextval()
{ next[] = -;
int k = -;
int j = ;
while (j < pLen)
{
//p[k]表示前缀,p[j]表示后缀
if (k == - || p[j] == p[k])
{
++j;
++k; if (p[j] != p[k])
next[j] = k; //之前只有这一行
else
next[j] = next[k];
}
else
{
k = next[k];
}
}
} int KmpSearch()
{
int i = ;
int j = ;
int ans = ; while (i !=sLen && j != pLen)
{
//①如果j = -1,或者当前字符匹配成功(即S[i] == P[j]),都令i++,j++
if (j == - || s[i] == p[j])
{
i++;
j++;
}
else
{ j = next[j];
} if(j == pLen) {
ans++;
j = next[j];
} } return ans;
}
int main(){
int t,ans;
scanf("%d",&t);
while(t--) {
cin>>p;
cin>>s;
sLen = strlen(s);
pLen = strlen(p);
GetNextval();
ans = KmpSearch();
cout<<ans<<endl;
} return ;
}
ACM KMP 格式输入导致TLE的更多相关文章
- CString中Format函数与格式输入与输出
CString中Format函数与格式输入与输出 Format是一个非经常常使用.却又似乎非常烦的方法,下面是它的完整概貌.以供大家查询之用: 格式化字符串forma("%d" ...
- MapReduce类型与格式(输入与输出)
一.输入格式 (1)输入分片记录 ①JobClient通过指定的输入文件的格式来生成数据分片InputSplit: ②一个分片不是数据本身,而是可分片数据的引用: ③InputFormat接口负责生成 ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式
ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...
- iOS开发笔记12:iOS7上UITextField限制字数输入导致崩溃问题
在一些场景中,需要限制用户的输入字数,例如在textField里进行控制(textView也类似,崩溃原因也相同),如图所示 系统会监听文本输入,需要注意的第一点是输入法处于联想输入还未确定提交的时候 ...
- ACM - KMP题目小结 (更新中)
KMP算法题型大致有两类,一类是next数组的应用,一类是匹配问题. next数组大多数是求字符串周期,或者是与前缀后缀有关,也可以应用在DP中.需要对next数组有一定理解才能做得出. next数组 ...
- ACM 关于数据输入加速
转载请注明出处:http://blog.csdn.net/a1dark 分析:我们都知道运行时间对我们来说很重要.有时候不惜用大量的内存去换取一点时间.有些人可能都比较关注这个问题.首先时间上:cin ...
- 关于Scanner调用 sc.nextInt() 异常try后不能二次输入导致死循环问题
先看下简化的代码,引出问题所在: public class Run { public static void main(String[] args) { Scanner sc = new Scanne ...
- EXCEL中自定义格式输入的数据怎么完整复制
在用设置单元格式里 自定义 输入数值 如图,B列的数据,我复制后,用选择性粘贴到别的地方,还是无法将75FG4Y2一起复制过去,只能复制过去FG 怎么办? ===>先把这些复制到一个记事本里,再 ...
随机推荐
- Spring Cloud之——Config(配置中心)
Spring Cloud Config(配置中心) 大家好,有一段时间没有写技术博客了.由于工作上的事情,这方面很难分配时间.近几年随着服务化的兴起,一批服务化的框架应运而生,像dubbo,thrif ...
- Hibernate(八):基于外键映射的1-1关联关系
背景: 一个部门只有一个一把手,这在程序开发中就会设计数据映射应该设置为一对一关联. 在hibernate代码开发中,实现这个业务有两种方案: 1)基于外键映射的1-1关联: 2)基于主键映射的1-1 ...
- POJ-1068 Parencodings---模拟括号的配对
题目链接: https://vjudge.net/problem/POJ-1068 题目大意: 给出一种括号序列的表示形式名叫P序列,规则是统计出每个右括号之前的左括号个数作为序列每项的值.然后要求你 ...
- 屏幕上两点画线+DDALine算法
编译环境VS2017+EasyX #include "stdafx.h" #include"graphics.h" void DDALine(int x0, i ...
- python的调试
调试 程序能一次写完并正常执行的概率很小.总会有各种各样的bug需要修正. 有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时 哪些变量的值是正确的,哪些变量的值是错误的,因此 ...
- Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
/** * @author hechen */ var gs = { /**获得屏幕宽度**/ ScreenWidth: function () { return window.screen.widt ...
- Maven 项目管理工具基础知识系列(一)
一.Maven 简介 Maven 中文意为 " 内行.专家 ",是 Apache 下的一个开源项目,属于纯 Java 开发,并且只是用来管理 Java项目的,它是一款项目管理工具, ...
- 将 Net 项目升级 Core项目经验:(三)迁移后的Net Standard版本的类库测试和多平台项目实测
迁移后的Net Standard版本的类库测试和多平台项目实测 按照第一步的方法,添加一个Net Core的MSTest项目,然后将原来的测试项目下的代码迁移到新测试 项目中,然后引用新的Beyond ...
- day 1——ST表练习
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 43893 Accepted: 20585 ...
- salt基本使用之一(1)
1.帮助文档 以cmd函数为例子说下salt中的一些帮助信息 # 查看指定modules用法 salt '*' sys.doc cmd # 查看所有的modules列表 salt '*' sys.li ...