Clairewd’s message--hdu4300(Next数组的运用)
题目链接: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数组的运用)的更多相关文章
- hdu4300 Clairewd’s message【next数组应用】
Clairewd’s message Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- hdu------(4300)Clairewd’s message(kmp)
Clairewd’s message Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU-4300 Clairewd’s message
http://acm.hdu.edu.cn/showproblem.php?pid=4300 很难懂题意.... Clairewd’s message Time Limit: 2000/1000 MS ...
- hdu4300 Clairewd’s message
地址:http://acm.hdu.edu.cn/showproblem.php?pid=4300 题目: Clairewd’s message Time Limit: 2000/1000 MS (J ...
- hdu 4300 Clairewd’s message KMP应用
Clairewd’s message 题意:先一个转换表S,表示第i个拉丁字母转换为s[i],即a -> s[1];(a为明文,s[i]为密文).之后给你一串长度为n<= 100000的前 ...
- 【POJ2774】Long Long Message(后缀数组)
[POJ2774]Long Long Message(后缀数组) 题面 Vjudge Description Little cat在Byterland的首都读物理专业.这些天他收到了一条悲伤地信息:他 ...
- (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 ...
- hdu 4300 Clairewd’s message 字符串哈希
Clairewd’s message Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU4300 Clairewd’s message(拓展kmp)
Problem Description Clairewd is a member of FBI. After several years concealing in BUPT, she interce ...
- hdu4300 Clairewd’s message 扩展KMP
Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important ...
随机推荐
- 实现在edittext中任意插入图片
Myedittext: public class MyEditText extends EditText { public MyEditText(Context context) { super(co ...
- headfirst设计模式swift版01
headfirst设计模式这本书真好,准备用一个月学完.书里讲得很清楚了. 设计原则: 1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起. 2.针对接口编程,而不是针 ...
- Setup Factory 读取安装包的配置文件
result = INIFile.GetValue(SessionVar.Expand("%SourceFolder%\\set.ini"), "set", & ...
- gcc 编译流程分析
//test.c #include<stdio.h> int main() { ,y=; printf("x=%d y=%d\n",x,y); ; } 1:预处理阶段, ...
- 数据库 proc编程五
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...
- Spring Cloud都做了哪些事
Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均衡.断路器.数据监控等,都可以用 ...
- getRequestDispatcher 和sendRedirect区别及路径问题
getRequestDispatcher 和sendRedirect区别 getRequestDispatcher是服务器内部跳转,地址栏信息不变,只能跳转到web应用内的网页. sendRedi ...
- chmod 4777? 文件特殊权限 SUID SGID StickyBit
故事引入 今天碰到了一条指令, test 怎么在777前还有一位,颠覆了我的认知啊,这时候必须翻鸟哥神书了,找到一个链接<7.4.3 文件特殊权限:SUID/SGID/Sticky Bit> ...
- centos7安装avahi
sudo yum install avahi sudo yum install avahi-tools 转自: http://unix.stackexchange.com/questions/1829 ...
- CodeForces 42C Safe cracking 规律题
题目链接:点击打开链接 3个数为一组,找最大的一个数让它降低,则显然是有解的,分类讨论一下就可以 #include<cstdio> #include<cstring> #inc ...