博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 4300 拓展kmp
阅读量:4337 次
发布时间:2019-06-07

本文共 601 字,大约阅读时间需要 2 分钟。

题目大意:

输入样例个数,每个样例有两行,第一行是26个字母,分别代表a~z加密后的密文;第二行代表一串密文+明文,密文一定是完整的,但明文可能不完整,让你输出最短的(密文+明文);

基本思路:

拓展kmp,因为密文是完整的,所以它的长度必然是一半以上,所以把前一半转换成明文放到另一个数组里,然后后半部分原封不动的放到该数组里,然后拓展kmp,求一下next,然后从一半以后一直往后找,找到的话,就跳出,然后基本把把问题解决了;

代码如下:

#include
#include
#include
using namespace std;typedef long long ll;const int inf = 0x3f3f3f3f;const int maxn = 100000+10;int nx[maxn],ex[maxn];char S[maxn],T[maxn];char s1[maxn],a[27],b[27];int lent,lens;void getNext(){ nx[0]=lent; int j=0; while(j+1

  

转载于:https://www.cnblogs.com/imzscilovecode/p/8098116.html

你可能感兴趣的文章
MariaDB 主从同步与热备(14)
查看>>
推荐的 CSS 书写顺序
查看>>
NIO:与 Buffer 一起使用 Channel
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析
查看>>
Android - 广播机制和Service
查看>>
MFC接收ShellExecute多个参数
查看>>
volatile和synchronized的区别
查看>>
RocketMQ介绍与云服务器安装
查看>>
Jenkins插件HTML Publisher Plugin的使用
查看>>
A. The number of positions
查看>>
Windows中cmd的DOS命令查看占用某端口的程序及PID号
查看>>
设计多列布局
查看>>
返回一个整数数组中最大子数组的和
查看>>
解决FLASH遮住层的问题 IE,Firefox都适用!
查看>>
第七章:线程以及线程间的通信
查看>>
算法 PK 猫咪 | 章鱼保罗后继竟然是只猫?
查看>>
读书报告汇总
查看>>
rsync+inotify
查看>>
linux 创建连接命令 ln -s 软链接
查看>>
数据源与连接池
查看>>