HDOJnbsp;nbsp;4300nbsp;nbsp;nbsp;Clairewd’snbsp;message

2024-02-09 07:38

本文主要是介绍HDOJnbsp;nbsp;4300nbsp;nbsp;nbsp;Clairewd’snbsp;message,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4300

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int L=100010;
char a[100],b[100];
char str[L],pat[L];
int fail[L];
int kmp(int n)
{
    int i,j,k;
    memset(fail,-1,sizeof(fail));
    for (i=1; pat[i]; ++i)
    {
        for (k=fail[i-1]; k>=0 && pat[i]!=pat[k+1]; k=fail[k]);
        if  (pat[k+1]==pat[i]) fail[i]=k+1;
    }
    i=j=0;
    while (str[i])
    {
        if (pat[j]==str[i]) ++i,++j;
        else if (j==0) ++i;
        else j=fail[j-1]+1;
    }
    if (j==0) return -1; else j--;
    while ((j+1)*2>n) j=fail[j];
    return j;
}
int main()
{
    int o,i,n,k;
    scanf("%d",&o);
    while (o--)
    {
        scanf("%s",a);
        for (i=0; i<26; i++) b[a[i]-'a']=i+'a';
        scanf("%s",str);
        for (i=0; str[i]; i++) pat[i]=b[str[i]-'a'];
        n=strlen(str); pat[n]='\0';
        k=kmp(n);
        for (i=0; i<n-k-1; i++) printf("%c",str[i]);
        for (i=0; i<n-k-1; i++) printf("%c",pat[i]);
        printf("\n");
    }
}

这篇关于HDOJnbsp;nbsp;4300nbsp;nbsp;nbsp;Clairewd’snbsp;message的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/693566

相关文章

SDUT1500_Message Flood(字典树)

Message Flood Time Limit: 1500MS Memory limit: 65536K 题目描述 Well, how do you feel about mobile phone? Your answer would probably be something like that "It's so convenient and benefits peop

MQTT: Will Message

Will Message (遗嘱信息) Will 消息需要被服务器保存在服务器端,和当前网络连接关联。 Will 消息必须在后续网络连接断开之后被分发出去(Publish), 除非服务器收到了来自客户端的 Disconnect 包。 发布 Will信息的情形包括但不限于: 服务器检测到客户端连接中断或者 I/O 错误。客户端没有按照约定的 Keep-Alive 时间发送 Ping 消息。客

Android源码解析Handler系列第(一)篇 --- Message全局池

1、UI不能在子线程中更新是个伪命题 我们常说UI需要在主线程中进行更新,子线程就不能更新UI吗?不是,我们并不是说不能在子线程中更新UI,而是说UI必须要在它的创建线程中进行更新,比如下面一段代码在子线程更新UI就不会报错。 new Thread(new Runnable() {@Overridepublic void run() {TextView textView=new

Ubuntunbsp;出现apt-get:nbsp;Packag…

学习了 原文地址:Ubuntu 出现apt-get: Package has no installation candidate问题 作者:zhou4539   Ubuntu 出现apt-get: Package has no installation candidate问题 分类: 系统-Linux 2011-12-18 13:32 751人阅读 评论(0) 收藏 举报 今天在

微信公众平台nbsp;10.29日更新nbsp;之己见

曾经有前辈说过,无论微信 5.0 的部分功能做的有多差,但是这是微信转型的一个里程碑。起初,笔者有点不太理解其中的道理,但是随着自己做了些东西东西后,才慢慢发现,这种先推广后优化,让用户去引导功能开发的策略是多么的明智。 此前,网络曾有谣言,微信服务号将于明年起收3000元/年的年费,这一传言尚未被证实,昨天微信公众平台正式推出了微信认证这一个功能,服务号可以花费300元进行认

Hive 2.3.0 MetaException(message:Version information not found in metastore. )

使用Hive 2.3.0 配置远程模式(Remote)时,执行hive --service metastore命令时出现MetaException(message:Version information not found in metastore. )错误。 解决办法: The necessary tables required for the metastore are missing i

C语言的条件编译#if,nbsp;#elif…

原文地址:C语言的条件编译#if, #elif, #else, #endif、#ifdef, #ifndef 作者:Embeder 有些程序在调试、兼容性、平台移植等情况下可能想要通过简单地设置一些参数就生成一个不同的软件,这当然可以通过变量设置,把所有可能用到的代码都写进去,在初始化时配置,但在不同的情况下可能只用到一部分代码,就没必要把所有的代码都写进去,就可以用条件编译,通过预编译指

结构体定义nbsp;typedefnbsp;structnbsp;…

很不错 原文地址:结构体定义 typedef struct 用法详解和用法小结 作者:紫心玲儿 typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。 具体区别在于: 若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n; 若用typedef,可以这样写,typedef struct node

C++nbsp;usingnbsp;namespacenbsp;stdnbsp;详解

一 : 和是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。  后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。  因此,当使用时,相当于在c中调用库函数,使用

C++的dllexport和dllimportnbsp;nbsp;…

C++的dllexport和dllimport: __declspec(dllexport) 声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类 __declspec(dllimport)