在写 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的更多相关文章

  1. CString中Format函数与格式输入与输出

    CString中Format函数与格式输入与输出 Format是一个非经常常使用.却又似乎非常烦的方法,下面是它的完整概貌.以供大家查询之用:   格式化字符串forma("%d" ...

  2. MapReduce类型与格式(输入与输出)

    一.输入格式 (1)输入分片记录 ①JobClient通过指定的输入文件的格式来生成数据分片InputSplit: ②一个分片不是数据本身,而是可分片数据的引用: ③InputFormat接口负责生成 ...

  3. 一个粗心的Bug,JSON格式不规范导致AJAX错误

    一.事件回放  今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...

  4. [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式

    ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...

  5. iOS开发笔记12:iOS7上UITextField限制字数输入导致崩溃问题

    在一些场景中,需要限制用户的输入字数,例如在textField里进行控制(textView也类似,崩溃原因也相同),如图所示 系统会监听文本输入,需要注意的第一点是输入法处于联想输入还未确定提交的时候 ...

  6. ACM - KMP题目小结 (更新中)

    KMP算法题型大致有两类,一类是next数组的应用,一类是匹配问题. next数组大多数是求字符串周期,或者是与前缀后缀有关,也可以应用在DP中.需要对next数组有一定理解才能做得出. next数组 ...

  7. ACM 关于数据输入加速

    转载请注明出处:http://blog.csdn.net/a1dark 分析:我们都知道运行时间对我们来说很重要.有时候不惜用大量的内存去换取一点时间.有些人可能都比较关注这个问题.首先时间上:cin ...

  8. 关于Scanner调用 sc.nextInt() 异常try后不能二次输入导致死循环问题

    先看下简化的代码,引出问题所在: public class Run { public static void main(String[] args) { Scanner sc = new Scanne ...

  9. EXCEL中自定义格式输入的数据怎么完整复制

    在用设置单元格式里 自定义 输入数值 如图,B列的数据,我复制后,用选择性粘贴到别的地方,还是无法将75FG4Y2一起复制过去,只能复制过去FG 怎么办? ===>先把这些复制到一个记事本里,再 ...

随机推荐

  1. Python/MySQL(三、pymysql使用)

    Python/MySQL(三.pymysql使用) 所谓pymysql就是通过pycharm导入pymysql模块进行远程连接mysql服务端进行数据管理操作. 一.在pycharm中导入pymysq ...

  2. MySQL/上

    MySQL操作/上 一.视图 视图表是一个虚拟表(非真实存在),其本质是[根据sql语句获取动态的数据集,并为其命名],用户使用表只需使用(名称)即可获取结果集,并可以将其当做表来使用. 1.创建视图 ...

  3. Text-插入图片

    #text插入图片 from tkinter import * master=Tk() text=Text(master,width=50,height=50) text.pack() photo=P ...

  4. PHP多个一维数组合并成二维数组的简易方法

    当我们需要进行数组遍历数据的时候,需要将多个一维数组进行二维的转换,方法很简单.如下: <?php $a= array('张三','李四','王五'); $b= array ('23','24' ...

  5. JavaScript数据结构与算法(八) 集合(ECMAScript 6中定义的类似的Set类)

    TypeScript方式实现源码 // 特性: // 1. 集合是由一组无序且唯一(即不能重复)的项组成的.这个数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中. // 2. 也 ...

  6. [LeetCode] My Calendar I 我的日历之一

    Implement a MyCalendar class to store your events. A new event can be added if adding the event will ...

  7. openSUSE虚拟机安装并连接Xshell

  8. javascript的基础(2)--数据类型介绍

    1. number数据类型 所有的数字都是Number数据类型 利用typeof运算符可以返回当前数据的数据类型 特殊值:NaN not a number 不是一个数字 注意 :小数的计算可能产生丢失 ...

  9. poj 1046 ——Color Me Less

    提交地址:http://poj.org/problem?id=1046 Color Me Less Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  10. 在Linux服务器部署 .NET-Core 项目

    一.文章概要  这篇文章是讲述一个Linux 新手将 .NET-Core 项目部署在 Linux 服务器上的一个记录,以及在部署期间遇到的问题以及解决办法.有不恰当的地方.欢迎大神指正. 二.前期准备 ...