如何优雅的写单词_lduoj_kmp

2023-11-06

如何优雅的写单词

Description

单词背多少了!?
心里还没有点数了!?

还有多长时间考试你知道吗!?
你说,单词背到第几章了!?

呜呜呜,别骂了别骂了,再骂人傻了

在深知单词的重要性之后,PushyTao下定决心要好好背单词。为了防止在考试的时候不会写,PushyTao还决定在背单词的时候还要写几遍,但是他太懒了,所以就“发明”出了一种新的方法:

比如说,对于一个长度为n的单词,PushyTao要写m遍。如果这个单词的后半部分和前面的一部分有相同,他就会省略掉相同的不写。比如说长度为3的一个单词aba,PushyTao要写4遍,那么就可以将单词写成ababababa,因为从s[1] ~ s[3],从s[3] ~ s[5],从s[5] ~ s[7],从s[7]~s[9]都是aba,所以这样PushyTao就非常“巧妙的”写完了4遍单词;但是也有让PushyTao很无语的单词,比如abc,就不得不写成abcabcabcabc

Input

第一行:一个整数n代表单词的长度,一个整数m,代表要写的次数(1<=n,m<=50)

第二行:一个长度为n的字符串

Output

输出一个字符串,代表PushyTao可以写的长度最短的一个字符串

Samples
Input 复制

3 4
aba

Output

ababababa

Input 复制

3 2
abc

Output

abcabc

这个题的原型是CF这个题

相关的题解可以看一下,我现在写一下这个题的题解

看一下数据范围可以看出来,这个题可以直接硬生生的进行模拟,可以便利字符串寻找长度最长的前缀和后缀,然后输出就可以。
说到这里,聪明的小伙伴已经发现了,在KMP中next数组不就可以用在最长的公共前后缀嘛
所以说这个题直接可以先输出一个原先的字符串,然后对于剩下的m-1次直接输出从next[n] ~ n-1的每一个字符串就好了嘛(下标从0开始)

优雅的KMP_Code():

char p[107];
int n,k;
int nex[107];
void _get_next(){
    nex[0] = 0;
    nex[1] = 0;
    for(int j=1;j<n;j++){
        int k = nex[j];
        while(k && p[j] != p[k]) k = nex[k];
        if(p[j] == p[k]) nex[j+1] = k+1;
        else nex[j+1] = 0;
    }
}
int main() {
    cin >> n >> k;
    cin >> p;
    _get_next();
    cout<<p;
    k--;
    while(k --){
        for(int i=nex[n];i<n;i++) printf("%c",p[i]);
    }
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何优雅的写单词_lduoj_kmp 的相关文章

  • 小程序如何获取当前的天气预报

    大家好 我是陈楠酒肆 今天我为大家分享的是小程序获取当前的天气预报 我们先看看效果图 在实现这个效果之前我们需要引用一个JS文件 就是amap wx js 这个文件可以在我的交流群里下载 由于这里我使用了高德地图密钥 因此 大家还需要在高德
  • 论文研读 —— 10. PCA-Kalman: device-free indoor human behavior detection with commodity Wi-Fi (2/3)

    文章目录 3 2 Online behavior testing phase 4 Experimental setup 4 1 Hardware testbed 4 2 Experimental scenarios 3 2 Online b
  • 设计之星 ai_“AI创新之星”评选活动征集工作已启动,6月15日止,速来!

    为了推动人工智能与实体经济发展的深度融合 充分展示国内企业和创业团队在人工智能领域的创新成果 中国人工智能 多媒体信息识别技术竞赛 组委会在竞赛期间组织开展 AI创新之星 评选活动项目征集工作 评 选 范 围 评选主要围绕 深化融合应用 培
  • randomforestregressor参数详解

    randomforestregressor参数详解 sklearn ensemble RandomForestRegressor n estimators 10 数值型参数 默认值为100 此参数指定了弱分类器的个数 设置的值越大 精确度越
  • 【JAVA基础】核心机制

    b站大学课程笔记 下面是课程链接 https www bilibili com video BV1364y1k7WG p 11 spm id from pageDriver vd source b53165477127ff81132dc79
  • 编译gnome-sharp-2.20.1出错

    To solve the problem gtk2 development library must be installed Under CentOS this can be done with yum groupinstall Deve
  • 密码正则

    正则一 密码正则 密码需包含字母 符号或者数字中至少两项且长度超过6位数 最多不超过16位数 const regPwd str gt let zmReg A Za z 大小写字母 let numReg 0 9 数字 let zfReg A
  • QTcp-心跳

    心跳机制 大致实现两中 心跳发起的主动方为谁 server或client 其基本思路 是在一定时间间隔内模拟server和client的通信 所以 这就比一般通信多了时间属性 而非随意进行交互 这里 我们将client作为主动方 其过程如下
  • 通过递归方法更改对象中的属性值

    需求 递归一个对象 我们更改其type全部为5 我们首先思考如果用每一层的循环我们怎么取解决 var data label 一级 1 type 1 children label 二级 1 1 type 1 children type 1
  • 有人提议扣程序员80%的税分给穷人,多人点赞。

    大家好 我是北妈 0 现在经济不好 很多人内心很慌 然后就有人开始打歪主意了 比如今天我看到了这个 这个说法甚至得到了很多人的支持和点赞 为什么会有很多人支持这种想法呢 毕竟在大家眼睛里 程序员是高薪 有钱的代名词 在大多数人工资收入都很低
  • SPI协议介绍

    在调试LCD驱动时用到了SPI接口 因此将了解 理解到的SPI知识记录下来 SPI接口有三线和四线两种类型 这里只介绍常用的四线类型 what 简单介绍 术语表 基本概念 why 优点特点 how 过程 what 简单介绍 术语表 name
  • 安装Ubuntu遇到unable to find a medium containing a live file system解决方案

    安装unable to find a medium containing a live file system 搜了好几个帖子 说是重新烧录u盘 换usb2 0 都不好使 最后找到了 在启动页面点击e 可以进入启动写参数界面 将quiet
  • 搜索提示是如何实现的

    经典的想法就是一个Trie的 keysWithPrefix 问题 更高级的 进一步考察 keysWithPrefix需要做prefix下的inOrder遍历 但是每当用户type下一个字符 那个提示列表瞬间就显示出来了 不像是遍历很大一棵树
  • CNCF X ACE KubeMeet 云原生应用管理专场·上海站来啦!

    简介 10月16日上海站 KubeMeet 将以 云原生应用管理 为主题 围绕 KubeVela 和 OpenKruise 两个项目的技术分享和企业实践展开 帮助开发者更好的应对云原生应用管理痛点 伴随着 Kubernetes 生态逐步完善

随机推荐

  • JavaScript实现随机抽奖功能

    通过数组存储抽奖号码 点击按钮实现名字 号码的滚动 点击停止即可实现抽奖功能 设置一个定时器 使用random方法随机获取号码 当点击按钮时去掉计时器实现暂停功能 思路解析 1 抽奖功能的名字滚动可以使用定时器都是获取名单中的数据 2 为了
  • 在字符串中删除特定的字符

    在字符串中删除特定的字符 字符串 题目 输入两个字符串 从第一字符串中删除第二个字符串中所有的字符 例如 输入 They are students 和 aeiou 则删除之后的第一个字符串变成 Thy r stdnts include
  • hashmap为什么用红黑树_HashMap

    以下面试题从看准 牛客 以及大量大厂面经中收集而来 面向真实面试 一 面试题总览 面试题整理后分为三大模块 分别是数据结构 扩容以及线程安全 同样梳理HashMap的时候也可以从这三个角度展开 下面这些问题相信大家在面试过程中也会被经常问到
  • 3D引擎--可移植到Android的开源的引擎

    随着android在全球的风靡 越来越多的人将自己的目光投向搭载android的 移动设备 但由于手持设备的局限性 怎样利用有限的资源来达到很好的体验 是设备厂商必须要考虑的问题 其中炫目的界面就是可以增加用户体验的一种方式 这其中 3D效
  • js按拼音查询结果集

    let strChineseFirstPY YDYQSXMWZSSXJBYMGCCZQPSSQBYCDSCDQLDYLYBSSJGYZZJJFKCCLZDHWDWZJLJPFYYNWJJTMYHZWZHFLZPPQHGSCYYYNJQYXX
  • 【Linux】权限管理,谁动了我代码?!

    目录 一 shell命令以及运行原理 二 Linux用户权限 1 su 用户切换 三 权限管理 1 理解 2 用户 3 文件类型 4 文件基本权限 5 设置文件权限方法 1 chmod 修改文件访问权限 2 chown 修改文件拥有者 3
  • TypeError: check() missing 1 required positional argument: 'self'

    TypeError check missing 1 required positional argument self TypeError check 缺少1个必需的位置参数 self 出现原因 1 没有实例化类直接引用 问题解决参考 ht
  • GLSL学习笔记---内置变量

    GLSL学习笔记 GLSL语言内置的变量 包括内置的顶点属性 attribute 一致变量 uniform 易变变量 varying 以及常量 const 一方面加深印象 另一方面今天的文章可以为以后的编程做查询之用 顶点属性 指顶点的信息
  • 【POC公开】CVE-2021-1675: Windows Print Spooler远程代码执行漏洞通告

    赶紧点击上方话题进行订阅吧 报告编号 B6 2021 062902 报告来源 360CERT 报告作者 360CERT 更新日期 2021 06 29 1 漏洞简述 2021年06月29日 360CERT监测发现安全研究人员在GitHub上
  • 三种方法构建Java树形结构,Stream真的厉害

    小熊学Java网站 https javaxiaobear gitee io 每周持续更新干货 建议收藏 平时大概率我们会构建一些树形结果返回给前端 比如菜单结构 部门列表 文件结构等 我们一般想到的就是利用递归来循环构建 现在 就我个人解决
  • 二值网络——开启小而快神经网络时代

    摘要 这种使用浮点计算的神经网络要求的大存储空间和大计算量 严重阻碍了其在手机 手表和移动机器人等设备上的应用 二值神经网络设法让计算主要在正1或负1间进行 几十倍地降低了网络大小和计算量 但一直以来难以达到高预测准确率 最新的进展大幅提高
  • E1接口介绍

    E1 通道本来设计用来传输电话的 每个 E1 带宽 2 048M 可以传 30 路电话 后来扩大的应用范围 可以用作传网络 串口等不同的业务 E1 是一个基本的传输单元 其最终还是通过光纤来传输的 如 PDH 光端机 就是用来传 E1 的
  • WSL2:开发环境安装

    写在前面 主要是记录一下如何安装和搭建基于WSL2的开发环境 参考博文 搭建优雅的Windows终端 Windows terminal scoop starship 一 安装WSL2 以管理员身份运行CMD 执行以下命令即可WSL和Linu
  • 26段简短代码带你零基础入门Python

    01 运行方式 本文示例代码使用的Python版本为Python 3 6 运行Python代码有两种方式 一种方式是启动Python 然后在命令窗口下直接输入相应的命令 另一种方式就是将完整的代码写成 py脚本 如hello py 然后在对
  • 最新版 dubbo-admin 0.3.0 版本安装配置教程,如何才能正确打开

    首先是资源的下载 进入该链接 https github com apache dubbo 然后往下翻 找到这里 点进去 然后这里我直接下载压缩包 解压以后 包里的内容 这里需要关注的有这两三个包 选中的 server是后端包 ui是前端包
  • three.js设置Geometry顶点位置、顶点颜色数据

  • 鸡和兔子共36脚100Matlab,matlab习题集精选.pdf

    matlab习题集精选 Matlab 习题 2014 12 Matlab 习题 1 MATLAB 操作基础 1 1用一元二次方程求根公示解方程x 2 2 x 3 0 的根 1 2三角形边长分别为3 4 5 求其面积 1 2 0 1 0 1
  • git 常见命令——将本地仓库推送到远程仓库的相关流程

    目录 1 初始化项目 2 建立本地仓库和远程仓库的连接 3 已有项目只需克隆项目到本地 无需进行前两步 4 创建并切换分支 4 1 查看当前分支 4 2 切换分支 4 3 常见分支类型有 4 4 在切换分支的时候 将当前分支修改的内容 同步
  • Outlook 错误号 0x800CCC0B,怎么解决?

    正常设置了OUTLOOK EXPRESS等邮件客户端软件后 若发信不正常 OUTLOOK EXPRESS会给您一个错误信息 这个错误信息里面会包含一个错误码根据错误码与下表进行比较 一般都可以找出大多数问题的解决办法 错误码 意义 0x80
  • 如何优雅的写单词_lduoj_kmp

    如何优雅的写单词 Description 单词背多少了 心里还没有点数了 还有多长时间考试你知道吗 你说 单词背到第几章了 呜呜呜 别骂了别骂了 再骂人傻了 在深知单词的重要性之后 PushyTao下定决心要好好背单词 为了防止在考试的时候