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

题意就是给你26的字母的加密方式,然后又给了一个串s1是包含加密后的和没有加密的但是没有加密的可能不齐全;求完整的密文和原文;

例如第二个例子:

      abcdefghijklmnopqrstuvwxyz

加密方式:  qwertyuiopasdfghjklzxcvbnm

  s1:   qwertabcde

在s1中qwert就是密文,后面的abcde就是原文;

假如加密方式不变,s1变成qwertabc,那么答案还是qwertabcde;

密文的长度肯定大于s1总长度的一半,我们可以把s1前一半当成密文后一半不变,然后解密得到s2,那么s2的Next【len】就是给出的明文的长度,总长度-明文

的长度得到的就是密文的总长度,然后输出密文和密文对应的明文就可以了

在串中加一个*是为了防止求多了匹配;(错了好多次)

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std; const int N = 2e5+;
char s[], s1[N], s2[N], s3[N], pass[], ans[N];
int Len, Next[N], L;
void GetNext(char a[])
{
int i=, j=-;
Next[] = -;
while(i<Len+)
{
if(j==- || a[i] == a[j])
Next[++i] = ++j;
else
j = Next[j];
}
} int main()
{
int T, i;
scanf("%d", &T);
while(T--)
{
scanf("%s%s", s, s1);
for(i=; i<; i++)
pass[s[i]-'a'] = 'a'+i;
Len = strlen(s1);
L = (Len + )/;
for(i=; i<L; i++)
s2[i] = pass[s1[i]-'a'];
s2[i] = '*';
s2[i+]='\0';///不写的画下面没法用strcat;
strcat(s2, s1+L);
///printf("%s\n", s2);
GetNext(s2);
L = Len - Next[Len+];
for(i=; i<L; i++)
{
ans[i] = s1[i];
ans[i+L] = pass[s1[i]-'a'];
}
ans[i+L] = '\0';
printf("%s\n", ans);
}
return ;
}

Clairewd’s message--hdu4300(Next数组的运用)的更多相关文章

  1. hdu4300 Clairewd’s message【next数组应用】

    Clairewd’s message Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  2. hdu------(4300)Clairewd’s message(kmp)

    Clairewd’s message Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  3. HDU-4300 Clairewd’s message

    http://acm.hdu.edu.cn/showproblem.php?pid=4300 很难懂题意.... Clairewd’s message Time Limit: 2000/1000 MS ...

  4. hdu4300 Clairewd’s message

    地址:http://acm.hdu.edu.cn/showproblem.php?pid=4300 题目: Clairewd’s message Time Limit: 2000/1000 MS (J ...

  5. hdu 4300 Clairewd’s message KMP应用

    Clairewd’s message 题意:先一个转换表S,表示第i个拉丁字母转换为s[i],即a -> s[1];(a为明文,s[i]为密文).之后给你一串长度为n<= 100000的前 ...

  6. 【POJ2774】Long Long Message(后缀数组)

    [POJ2774]Long Long Message(后缀数组) 题面 Vjudge Description Little cat在Byterland的首都读物理专业.这些天他收到了一条悲伤地信息:他 ...

  7. (KMP 扩展)Clairewd’s message -- hdu -- 4300

    http://acm.hdu.edu.cn/showproblem.php?pid=4300 Clairewd’s message Time Limit: 2000/1000 MS (Java/Oth ...

  8. hdu 4300 Clairewd’s message 字符串哈希

    Clairewd’s message Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. HDU4300 Clairewd’s message(拓展kmp)

    Problem Description Clairewd is a member of FBI. After several years concealing in BUPT, she interce ...

  10. hdu4300 Clairewd’s message 扩展KMP

    Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important ...

随机推荐

  1. 使用C语言实现一个虚拟机

    使用C语言实现一个虚拟机 2015-6-22 21:32| 发布者: joejoe0332| 查看: 2891| 评论: 0|原作者: leoxu, Serval, 社会主义好, lostTemple ...

  2. Extjs DateField Bug 当format为年月'Y-m',在当前月(30、31号)选择其他偶数月会乱跳的问题解决方案

    Ext.form.WMDateField = Ext.extend(Ext.form.DateField, { safeParse : function(value, format) { if (/[ ...

  3. 防止js拦截跳转请求的方法

    不要直接使用window.open这个方法. 考虑下使用下面这个: openWindow: function(url){ var link = document.createElement('a'); ...

  4. Windows 使用 Gitblit 搭建 Git 服务器

    吐槽 Windows 安装 Git 那真是各种问题层出不穷,试过N种方法,反反复复不知道装了多少遍,然后又卸载.最后使用了Gitblit搭建Git服务器,虽然也遇到一些问题,但是都解决了.这个软件其实 ...

  5. Golang 中操作 Mongo Update 的方法

    Golang 和 MongoDB 中的 ISODate 时间交互问题 2018年02月27日 11:28:43 独一无二的小个性 阅读数:357 标签: GolangMongoDB时间交互时间转换 更 ...

  6. WebIM技术---编写前端WebSocket组件

    过去我们想要实现一个实时Web应用通常会考虑采用ajax轮循或者是long polling技术,但是因为频繁的建立http连接会带来多余的请求以及消息精准性的问题,让我们在实现实时Web应用时头疼不已 ...

  7. 使用OpenFace进行人脸识别(2)

    http://blog.csdn.net/u011531010/article/details/52270023 http://www.vccoo.com/v/2ed520 第一步 在 openfac ...

  8. django 模型中的计算字段

    models.py class Person(models.Model): family_name= models.CharField(max_length=20, verbose_name='姓') ...

  9. thinkphp5如何使用layout

    thinkphp5的layout和以前的版本有点差异. 首先开启配置文件中的 'template' => [      'layout_on' => true,      // 'layo ...

  10. AVR 定时器快速PWM模式使用

    PWM很常用,AVR自带内部PWM功能,分为快速PWM模式和相位修正PWM模式.   我们这里选择方式15 ,由OCR1A保存上限值,由OCR1B保存匹配值,所以输出管脚 OCR1A不能输PWM,只能 ...