hdu4300---Clairewd’s message

PostgreSQL和PostGIS安装、导入shp或gdb格式数据至数据库、使用QGIS测试上传PstGIS数据库操作和代码 本文详细介绍了postgresql和postgis安装步骤,并且使用postgis测试上传shp和gdb格式的矢量数据至数据库,包括步骤和代码,并使用qgis连接postgis数据查看数据库里的数据,数据依旧和本地数据一样可查看可编辑,方便后续数据底座开发和服务。 阅读详情

Clairewd’s message

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3621    Accepted Submission(s): 1388


Problem Description
Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important messages and she was preparing for sending it to ykwd. They had agreed that each letter of these messages would be transfered to another one according to a conversion table.
Unfortunately, GFW(someone's name, not what you just think about) has detected their action. He also got their conversion table by some unknown methods before. Clairewd was so clever and vigilant that when she realized that somebody was monitoring their action, she just stopped transmitting messages.
But GFW knows that Clairewd would always firstly send the ciphertext and then plaintext(Note that they won't overlap each other). But he doesn't know how to separate the text because he has no idea about the whole message. However, he thinks that recovering the shortest possible text is not a hard task for you.
Now GFW will give you the intercepted text and the conversion table. You should help him work out this problem.
 

Input
The first line contains only one integer T, which is the number of test cases.
Each test case contains two lines. The first line of each test case is the conversion table S. S[i] is the ith latin letter's cryptographic letter. The second line is the intercepted text which has n letters that you should recover. It is possible that the text is complete.
Hint
Range of test data:
T<= 100 ;
n<= 100000;
 

Output
For each test case, output one line contains the shorest possible complete text.
 

Sample Input
  
2 abcdefghijklmnopqrstuvwxyz abcdab qwertyuiopasdfghjklzxcvbnm qwertabcde
 

Sample Output
  
abcdabcd qwertabcde
 

Author
BUPT
 

Source
 

Recommend
zhuyuanchen520   |   We have carefully selected several similar problems for you:   4302  4301  4303  4304  4308 
 

题意好难理解啊

先给你个table,也就是明文对应的暗文

再给你一个串, 里面是暗文+明文,明文不一定完整,甚至没有

让你以最短的形式补全这个串,前半部分为暗文,后半部分为对应的明文


先把串的明文找出来,以此为模式串,原串为主串,进行扩展kmp,然后遍历,发现i + extend[i]  >= len 的话就找到答案了,如果找不到就输出主串和模式串


/*************************************************************************
    > File Name: hdu4300.cpp
    > Author: ALex
    > Mail: zchao1995@gmail.com 
    > Created Time: 2015年01月30日 星期五 21时09分35秒
 ************************************************************************/

#include <map>
#include <set>
#include <queue>
#include <stack>
#include <vector>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;

const double pi = acos(-1);
const int inf = 0x3f3f3f3f;
const double eps = 1e-15;
typedef long long LL;
typedef pair <int, int> PLL;
const int N = 100010;
char T[N];
char S[N];
int next[N];
int extend[N];
char table[30];
char rtable[30];

void EXTEND_KMP ()
{
	int lens = strlen (S);
	int lent = strlen (T);
	next[0] = lent;
	int i, j, p, L;
	j = 0;
	while (j + 1 < lent && T[j] == T[j + 1])
	{
		++j;
	}
	next[1] = j;
	int a = 1;
	for (i = 2; i < lent; ++i)
	{
		p = next[a] + a - 1;
		L = next[i - a];
		if (i + L < p + 1)
		{
			next[i] = L;
		}
		else
		{
			j = max(0, p - i + 1);
			while (i + j < lent && T[i + j] == T[j])
			{
				++j;
			}
			next[i] = j;
			a = i;
		}
	}
	j = 0;
	while (j < lens && S[j] == T[j])
	{
		++j;
	}
	extend[0] = j;
	a = 0;
	for (i = 1; i < lens; ++i)
	{
		p = extend[a] + a - 1;
		L = next[i - a];
		if (L + i < p + 1)
		{
			extend[i] = L;
		}
		else
		{
			j = max(0, p - i + 1);
			while (i + j < lens && j < lent && S[i + j] == T[j])
			{
				++j;
			}
			extend[i] = j;
			a = i;
		}
	}
}

int main ()
{
	int t;
	scanf("%d", &t);
	while (t--)
	{
		scanf("%s", table);
		scanf("%s", S);
		int len = strlen (S);
		for (int i = 0; i < 26; ++i)
		{
			rtable[table[i] - 'a'] = 'a' + i;
		}
		for (int i = 0; i < len; ++i)
		{
			T[i] = rtable[S[i] - 'a'];
		}
		T[len] = '\0';
		EXTEND_KMP ();
		bool flag = false;
		int e;
		int mid = len / 2 + (len % 2 ? 1 : 0);
		for (int i = 0; i < len; ++i)
		{
			if (extend[i] + i >= len && i >= mid)
			{
				e = i;
				flag = true;
				break;
			}
		}
		if (!flag)
		{
			printf("%s%s\n", S, T);
			continue;
		}
		for (int i = 0; i < e; ++i)
		{
			printf("%c", S[i]);
		}
		for (int i = 0; i < e; ++i)
		{
			printf("%c", T[i]);
		}
		printf("\n");
	}
	return 0;
}


使用 MATLAB/Simulink 构建一个基于FOC控制的PMSM矢量控制仿真模型 本教程详细介绍了基于MATLAB/Simulink的永磁同步电机(PMSM)磁场定向控制(FOC)系统建模与仿真方法。主要内容包括:PMSM电机模型参数设置、Clarke/Park变换模块设计、电流环PID控制器配置、SVPWM调制实现以及系统仿真参数优化。文章提供了模块化设计思路和具体参数设置示例,并给出了PID整定建议和进阶优化方向。通过该仿真模型,可深入理解PMSM矢量控制原理,掌握高性能电机控制系统的建模技巧,适用于伺服系统、电动汽车驱动等高端控制场景。教程还推荐了实时仿真和高级控制策略等扩展应用。 阅读详情

相关推荐

《Halcon 100项目-9》Halcon彩色线序检查

Halcon彩色线序检查

doubleintfloat的博客 1043

Clairewd’s message ekmp

  给两个串第一个串是翻译表(密文可以通过翻译表翻译成明文),第二个串是由密文+明文组成,前面是密文(完整的),后面是明文(未必完整),问能不能把第二个串补全,输出最短的一种可能。 一开始 用的string 和每次更新字符进行getnext 妥妥的 超时 kmp最好不要用string 速度太慢了 参考了 kuangbin的做法: 以s为原串做一次扩展KMP,得到e...

weixin_30920853的博客 170

ESP-IDF 利用ESP32构建智能音乐播放器(一)---------- 实现SD卡MP3文件的解码与播放

本文详细介绍了如何利用ESP32和ESP-IDF开发框架,从零开始构建一个智能音乐播放器。文章重点讲解了如何通过SD卡模块读取MP3文件,并集成Helix MP3解码库进行软件解码,最终通过I2S接口驱动音频模块实现播放。内容涵盖硬件连接、软件环境搭建、核心解码与输出逻辑,为嵌入式音频开发提供了完整的实战指南。

weixin_29163797的博客 234

HDU - 4300 Clairewd’s message(KMP)

HDU - 4300 Clairewd’s message(KMP) #include<cstdio> #include<cstring> const int N = 100010; char s[30],str[N],s1[30],s2[30],b[N<<1]; int ne[N<<1]; void get_next(int m) { for(int i=2,j=0;i<=m;i++) { while(j&&b[i]!=

00后的博客 282

Allegro中调整差分对等长的步骤介绍

【代码】Allegro中调整差分对等长的步骤介绍。

qq_30882617的博客 3833

全网详细解决:无法将 “xxx” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次

全网详细解决:无法将 “xxx” 项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

念兮为美 5万+

Clairewd’s message(字符串哈希)

字符串hash是指将一个字符串s映射为一个整数,使得该整数可以尽可能唯一地代表字符串s。 自然溢出法减少hash冲突: 这种方法是利用unsigned long long的范围自然溢出:即当存储的数据大于unsigned long long的存储范围时,会自动mod 264−1,就不用mod其他质数来保证唯一性了。 字符串哈希模板 typedef unsigned long long ull;//...

道阻且长,行则将至 446

【SOUND】Linux音频子系统ASoC的驱动框架总分析

ALSA系统在芯片(ASoC)层的总体项目目标是为嵌入式芯片处理器(例如PXA2XX,AU1X00,IMX等)和便携式音频编解码器提供更好的ALSA支持。 在进入ASoC子系统之前,内核对SoC音频有一些支持,但是它有一些局限性:ASoC层旨在解决这些问题并提供以下内容特征 :为了实现这一切,ASoC基本上将嵌入式音频系统分为多个可重复使用的组件驱动程序:另外,这里提下OSS(Open Sound System)这个基本被弃用的音频框架。 可以参考Linux OSS架构声卡驱动框架 2.3 ASoC重要

wang 恒 的博客 1781

HDU-4300 Clairewd’s message

题目链接:https://vjudge.net/problem/HDU-4300 这道题理解了题意就容易想思路了,我看了别人的题解才理解了题意: 题目大意: 发送一个密文,为字符串S。这段密文的前半部份是加密过的,后半部分是没有加密过的。现在这段密文被截获,但是密文的尾部的一部份损失了。例如,假设密文是xxxxzzzz, xxxx是加密过的,zzzz是没加密的,因为损失了

wl16wzl的博客 296

ISP算法:自动白平衡(AWB)

1. 为什么要做白平衡? 人类视觉系统具有颜色恒常性特点,一次人类对物体观察不受光源影响。但是Sensor在不同光线下,物体呈现的颜色不同,在晴朗天空下会偏蓝,在烛光下会偏红。如图: 2.什么是自动白平衡? 为了消除光源对于图像传感器成像的影响,模拟人类视觉系统的颜色恒常性。保证在任何场景下看到的白色是真正的白色。 3. 如何做自动白平衡? 只要乘以一个对角矩阵,便可以进行白平衡...

a200800170331的专栏 1万+

015、PCIE带宽计算:理论vs实际——调试手记

最近在调一块图像采集卡,主控抱怨数据吞吐量上不去。规格书上写着PCIE 3.0 x4,理论带宽接近4GB/s,实际测试却卡在2.5GB/s左右。硬件同事拍胸脯说链路训练正常,软件同事咬定DMA配置没问题——这种场景是不是很熟悉?

z534437748的博客 883

HDU 4300 (KMP)

Clairewd’s message Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5014    Accepted Submission(s): 1900 Problem Description Clairew

morejarphone~ 480

YOLO系列专栏(五):YOLO26 模型部署实战 | 从训练完成到落地应用(CPU/GPU/移动端)

训练好的YOLO26模型,本质上是一个权重文件(.pt格式),无法直接在实际场景中使用——不同应用场景需要不同格式的模型(如ONNX、TensorRT、TFLite),不同设备(CPU/GPU/移动端)的部署方式也截然不同。在保证模型精度基本不变的前提下,最大化提升推理速度,适配不同硬件设备。如果部署不当,会出现以下问题:❌ 推理速度慢:CPU部署单帧推理耗时超过100ms,无法满足实时检测需求(如监控、自动驾驶);❌ 模型格式不兼容:直接使用.pt权重文件,无法在移动端、嵌入式设备上运行;

qq_36130719的博客 632

HDU4300 Clairewd’s message

题目链接  HDU4300 题目大意:先提供一个由a到z的明文到密文的匹配,之后在下一行中有包含密文和一部分明文的字符串,我们需要把明文的部分补全并输出来。 分析:设明文密文匹配的字符串为s,需要补全的字符串为s1。s1中一定包含全部的密文,则将其全部当做密文翻译回明文时前面也一定是全部的明文。我们可以先将s1后半段截取后复制到s2上,s2包含需要补全的明文。然后用翻译后的s1作为模式串对s2

teddywang 446

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU 4300 Clairewd’s message

Clairewd’s messageProblem Description Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important messages and she was preparing for sending it to ykwd. They h

getAC 399

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

hdu 4300 Clairewd’s message

点击打开链接 Clairewd’s message Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7739    Accepted Submission(s): 2867 Problem De

zhang__liuchen的博客 386

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Clairewd’s message HDU - 4300

Clairewd’s message HDU - 4300 题目链接:https://cn.vjudge.net/contest/163024#problem/L 题目大意:给你一个二十六位的密码表A,然后给你一段文字S。前面部分完整的是密文,后面是未必完整的明文,让你输出完整的密文+完整的明文。 要求使得文字S最短 题目分析: 其实就是求第二个字符串的前缀和后缀的匹配,密文是全部的,但...

deerly_的博客 419

[hdu4300]Clairewd’s message

Clairewd’s message Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6540Accepted Submission(s): 2445 Problem Description Clairewd is a...

diejueza5100的博客 194

HDU4300 Clairewd s message

HDU4300 Clairewd s message

qq_44919369的博客 200

【扩展KMP】HDU 4300 Clairewd’s message

扩展KMP模板+一丢丢的思维~顺便附上哈希做法,也贴了哈希的详解~(哈希要快的说~)

L_X_ 212

HDU 4300 Clairewd’s message exkmp

一、内容 Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important messages and she was preparing for sending it to ykwd. They had agreed that each letter of the...

Tizzi的博客 884

HDU 4300 Clairewd’s message KMP

题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=4300 这道题目的题意太难理解了。 第一行给你26个字母的一段密文,对应明文是从a-z。 第二行给你前面是密文后面是明文的字符串,密文一定是完整的,但是明文可能没有也可能都有。 让你求最短的密文+明文。 例一:abcdab 最短密文:abcd,它对应的明文是abcd 所以

lamborghini1993 1258

HDU 4300 Clairewd’s message(KMP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4300 解题思路: 题意描述挺难理解。 大致意思是这个人截到某人发的秘文,如果发完是加密的发一遍紧接着发不加密的 现在有三种情况: 1.加密的还没发完 2.加密发完,不加密发了一部分 3.都刚好发完 最后总结为这一段字符最多一半是不加密的。 那么我们要找和前文加密的匹配部分的话先把这一...

shadiao.的博客 112
上一篇: POJ1860---Currency Exchange
下一篇: Codeforces Round #289 (Div. 2, ACM ICPC Rules) B. Painting Pebbles
tokers
博客等级 码龄12年 71粉丝 700原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值