当前位置: 首页 > 编程日记 > 正文

HDU 4300 Clairewd’s message

一道KMP的变式

本题仍是求最大前缀后缀,所以仍用KMP,但不同的是,本题有一个密码转换规则,不过好在题目中说了两段不重合,那么我们就可以在中间插入一个特殊符号'*'',保证求next数组时不会越过中线,然后把前半段按对应关系转化成明文,求next数组就行,本题难点在于边界条件的处理。
尽可能向已知或模板靠拢

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cstdlib>
#include <cmath>
using namespace std;
const int MAXN=100000+7;
int init(){int rv=0,fh=1;char c=getchar();while(c<'0'||c>'9'){if(c=='-') fh=-1;c=getchar();}while(c>='0'&&c<='9'){rv=(rv<<1)+(rv<<3)+c-'0';c=getchar();}return fh*rv;
}
int T,nxt[MAXN],nxt1[MAXN];
char table[400],s[MAXN],ys[400];
void getnxt(){nxt1[0]=-1;int len=strlen(s);int k=-1,j=0;while(j<len){if(k==-1||s[j]==s[k]) nxt1[++j]=++k;else k=nxt1[k];}
}
int main(){freopen("in.txt","r",stdin);T=init();while(T--){for(int i=1;i<=26;i++){scanf(" %c ",&table[i]);ys[table[i]-'a'+1]=i+'a'-1;}scanf("%s",s);int len=strlen(s);s[len]='*';s[++len]='\0';for(int i=len-1;i>len/2;i--){int t=s[i];s[i]=s[i-1];s[i-1]=t;}for(int i=0;i<=len/2-1;i++){printf("%c",s[i]);s[i]=ys[s[i]-'a'+1];}getnxt();int ans=len-nxt1[len];//cout<<s[ans-1]<<endl;if(!(len%2==0&&ans==len/2)){for(int i=len/2+1;i<=ans-1;i++) printf("%c",s[i]);for(int i=0;i<=ans-1;i++) if(i<len/2) printf("%c",s[i]);else if(i>len/2) printf("%c",ys[s[i]-'a'+1]);}else for(int i=0;i<=len/2-1;i++) printf("%c",s[i]);printf("\n");}fclose(stdin);return 0;
}

转载于:https://www.cnblogs.com/Mr-WolframsMgcBox/p/7967528.html

相关文章:

GNS3模拟VPC注意几点

网上的GNS3入门到精通视频的确做得不错。现我写一下主要几点&#xff1a;1、创建MS lookback 适配器在添加硬件那里&#xff0c;并注意IP设置要在本地网卡同一子网&#xff0c;网关不用设置的。2、GNS3 的Dynamips目录的cygwin1.dll文件替代VPCS目录中文件。3、GNS3中的模拟PC先…

Windows Phone 7 Tip (5) -- App liftcycle

在新的trainning kit 中有一个例子解释的很清楚了&#xff1a; 1. Application_Launching&#xff1a;只有在新启动程序时触发 2. Application_Closing&#xff1a;只有在推出程序时触发--只有在程序mainpage时按硬后退键 3. Application_Activated&#xff1a;从home键或者其它…

npm i和npm install的区别

最近人用npm i来直接安装模块&#xff0c;但是有会报错&#xff0c;用npm install就不会报错&#xff0c;刚开始百思不得其解&#xff0c;它俩明明是同一个东西后来查npm的帮助指令发现还是没区别&#xff0c;npm i仅仅是npm install的简写&#xff1a; 实际使用的区别点主要如…

获取服务器路径的方式 【记录】

JSP页面获取服务器路径的方式 1.basePath方式 <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/"; %> 在url加入<%basePath%>如&…

系统安全设置部分项

1.设置合理的操作超时锁定&#xff08;10分钟以内&#xff09;&#xff0c;在恢复时需要重新鉴别。 开启连接超时 vim /etc/ssh/sshd_config ClientAliveInterval 120 //设置超时时间2分钟 ClientAliveCountMax 3 重启 /etc/init.d/sshd restart 2.设置TMOUT将自动在所设置…

简单的分级别写日志程序

/************************************************************************/ /* * 文件名称&#xff1a;write_log.cpp * 摘 要&#xff1a;此文件实现了普通WINDOWS程序中的日志功能 * 主要有以下特点&#xff1a; * 1. 根据日期创建日志文件目录&#xff0c;每天的日志分别…

达内——java变量

package xx;//为class文件分目录 import xx.xx//导入包中的类 public class 类名{ public static void main(String args[]){ } } 准备工作&#xff1a; jdk jre jvm gc idea pi 配置环境变量 变量名支持字母&#xff0c;数字&#xff0c;_和$&#xff0c;但是数字不能开头&…

JSON Web Tokens测试工具

JSON Web Tokens官方提供测试工具https://jwt.io某些静态资料需要链接google、twitter服务器&#xff0c;被墙无法访问。现在提供可以方法测试工具http://hingtai.cn:8000/转载于:https://www.cnblogs.com/birdstudio/p/7985617.html

oracle 分页写法

select * from (select ROWNUM RN ,TT.* from ( select * from YQ_FEED_BACK_MESSAGE WHERE MODEL_TYPE 3 AND FEED_BACK_TYPE4 order by FEED_BACK_DATE DESC)TT where rownum<5 )where RN >0

给GRUB添加新的项目

安装了win10&#xff0c;然后又安装了manjaro&#xff0c;最后又安装了Ubuntu。开机默认就是进入的Ubuntu的grub&#xff0c;然而我比较喜欢manjaro的grub主题。在bios中设置manjaro的引导为默认引导&#xff0c;但是此时manjaro的grub没有Ubuntu&#xff0c;进入到manjaro系统…

Netapp存储基础之WAFL, NVRAM, RAID, SnapShot

此章节是重点之重点。先讲基本概念。WAFL的全称是Write Anywhere File Layout. 从类似于其它UNIX的文件系统比如Berkeley Fast File System (FFS) 和 TransArc Episode file system. 它的核心理念是"文件任意地方写"。先说普通的文件系统&#xff0c;是由inode和data…

读取本地照片 以流的形式进行显示

获取到前端传来的文件名称&#xff0c;到相应的文件中去读取&#xff0c;通过流的形式写到响应体中。 /*** 显示图片 * getFeedBackPicture.do?picName* return*/RequestMapping(value"/viewPhoto/{photopath}")public void getFeedBackPicture(HttpServletRespons…

如何轻松搞定机构资格准入?

银联的“资格入网”虽涉及环节庞杂&#xff0c;但杂而有序&#xff0c;初次接触银联的机构极有可能不知道先从哪一步骤开始&#xff0c;很多用户甚至不知道该怎么填写材料&#xff0c;所以我整理了一份详细的入网流程&#xff0c;以供大家参考&#xff0c;希望能帮助到大家~ 入…

eclipse CreateProcess error=87 的解决办法

有的说是 ClassPath过长&#xff0c;有的说是Eclipse插件导致最后 在这里得到解决啦http://code.google.com/p/googleappengine/issues/detail?id1862In C:\google\appengine-java-sdk-1.3.1\config\user\ant-macros.xmlChange line 102from<fileset dir"{war}/WEB-IN…

学习javascript 非常好的博客

这个大牛写的非常好&#xff01;&#xff01;推荐一下 http://www.cnblogs.com/xiaohuochai/tag/javascript%E6%80%BB%E7%BB%93/default.html?page8 小火柴的蓝色理想 转载于:https://www.cnblogs.com/oxspirt/p/7987342.html

Flex自定义组件

项目中需要用到如下一个效果。下图中五个圆代表一个五孔的梅花管。客户在后台操作时需要编辑梅花管的每个子孔占用情况。客户的要求是&#xff1a;点击某一个孔&#xff0c;小孔变黑&#xff0c;表明此孔被占用&#xff1b;再次点击&#xff0c;则小孔再变成透明圆形&#xff0…

解决在SQL Server 2000的存储过程不能调试

本机上: 控制面板—>管理工具—>服务—>MSSQL&#xff08;默认的ID&#xff09;—>属性—>登陆—>选一个Windows帐户&#xff0c;填写密码&#xff0c;再重新启动SQL Server 2000就可以调试存储过程了。 看一看sql数据库的版本&#xff0c;如果是kf版则不能进…

springboot打成jar后获取classpath下的文件

直接上代码 JAR包用这个 //获取容器资源解析器ResourcePatternResolver resolver new PathMatchingResourcePatternResolver();// 获取远程服务器IP和端口try {//获取所有匹配的文件Resource[] resources resolver.getResources("static/images/faceSearch/*.*"…

thymeleaf : input/select/radio回显

thymeleaf中不用自己去写checked"checked" selected"selected"这种代码&#xff0c;他自己会选。 input <input type"text" class"form-control1" id"name" name"name" th:value"${user.name}"> …

Spark MLlib之使用Breeze操作矩阵向量

这下面的练习中&#xff0c;需要自己将spark的jar包 添加进来。 1.spark Mlib 底层使用的向量、矩阵运算使用了Breeze库。 scalaNLP 是一套 机器学习和数值技算的库。它主要是关于科学技术&#xff08;sc&#xff09;、机器学习&#xff08;ML&#xff09;和自然语言处理&#…

兄弟们,TechEd见!

马上就要TechEd啦&#xff01;11月6日到11月7日&#xff0c;在北京举办TechEd&#xff0c;嘿嘿&#xff0c;那就是中国最大的微软技术庙会&#xff01;盆盆是在2005年时第一次参加TechEd的&#xff0c;当时拿的是MVP的赠票。啥都不懂&#xff0c;就好比刘姥姥进了大观园&#x…

Java - 框架之 SpringBoot 攻略day01

Spring-Boot 攻略 day01 spring-boot 一. 基本配置加运行 1. 导入配置文件&#xff08;pom.xml 文件中&#xff09; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1…

关于 RMAN 备份 数据块 一致性的讨论

今天和 杭州恒生 的一个朋友讨论一个RMAN 在备份时数据块一致性的问题。 关于RMAN 的备份原理参考blog&#xff1a; RMAN 系列&#xff08;一&#xff09;---- RMAN 体系结构概述 http://blog.csdn.net/tianlesoftware/archive/2010/06/09/5659701.aspx 先看官方文档上的一段话…

常用git命令

常用 Git 命令清单。专用名词的译名如下。半支烟 Workspace&#xff1a;工作区Index / Stage&#xff1a;暂存区Repository&#xff1a;仓库区&#xff08;或本地仓库&#xff09;Remote&#xff1a;远程仓库一、新建代码库 # 在当前目录新建一个Git代码库 $ git init# 新建一个…

springboot 读取配置文件内容的几种方式

1 使用 Environment 进行读取 env.getProperty("配置文件中的值") 2 使用注解的方式 PropertySource("classpath:application.properties") // 获取属性文件 //将其注解到类上 获取属性值 Value("${pictureSearchDemo.apiUrl}") // 获取属性…

Ubuntu9.10使用windows的字体的方法!

使用Ubuntu9.10已经有好几天了&#xff0c;安装字体算是我遇到的比较头疼的一件事&#xff0c;原本按照Ubuntu9.04的方法操作&#xff0c;发现无法使用windows中的字体&#xff0c;换了好几个方法&#xff0c;最终找打了解决方法&#xff0c;过程如下&#xff1a;1、新建一个文…

jmeter笔记(8)--关联

关联是jmeter中比较重要的一个点&#xff0c;在测试过程中有些数据是经常发生变化的&#xff0c;要获取这些数据&#xff0c;就需要使用关联&#xff0c;Jmeter可以通过“后置处理器”中的“正则表达式提取器”来处理关联。。 正则表达式提取器 1、在取样器下点击【添加】--【后…

java连接mysql以及增删改查操作

java连接数据库的代码基本是固定的&#xff0c;步骤过程觉得繁琐些&#xff0c;代码记起来对我来说是闹挺。直接上代码&#xff1a; &#xff08;温馨提醒&#xff1a;你的项目提前导入连接数据库的jar包才有的以下操作 &#xff09; 1 class DBConnection{2 3 // 驱动类…

Jrebel 热部署插件的使用和破解

生成GUIDS 的网站&#xff1a;https://www.guidgen.com/ Jrebel 介绍和破解说明&#xff1a;https://www.cnblogs.com/wang1024/p/7211194.html 本地服务器软件,在使用eclipse或者idea 时打开就可以了。链接&#xff1a;百度云链接 密码&#xff1a;buin

微软SCRUM 1.0流程模板在中文版TFS2010上无法创建项目的解决办法(续)

原文&#xff1a; http://www.almnetworks.net/zh-CN/post/2010/08/04/Microsoft-Visual-Studio-Scrum-10-Template-on-Chinese-Version-of-TFS.aspx 经过我的进一步测试&#xff0c;发现以上步骤不能解决这个问题&#xff0c;但是我找到了一个可以暂时保证我们使用SCRUM模板的…