当前位置: 首页 > news >正文

141. 周期

Powered by:NEFU AB-IN

Link

文章目录

  • 141. 周期
    • 题意
    • 思路
    • 代码

141. 周期

  • 题意

    一个字符串的前缀是从第一个字符开始的连续若干个字符,例如 abaab 共有 5个前缀,分别是 a,ab,aba,abaa,abaab。
    我们希望知道一个 N位字符串 S的前缀是否具有循环节。
    换言之,对于每一个从头开始的长度为 i(i>1)的前缀,是否由重复出现的子串 A组成,即 AAA…A(A重复出现 K次,K>1)。
    如果存在,请找出最短的循环节对应的 K值(也就是这个前缀串的所有可能重复节中,最大的 K值)。

  • 思路

    循环节——KMP的经典应用

    一个字符串S的循环节长度为t 等价于 S[1,n−t]=S[t+1,n]S[1, n - t] = S[t + 1, n]S[1,nt]=S[t+1,n]
    题目求ttt的最小值,相当于求n−tn-tnt的最大值,也就是求最长的相等前后缀,也就是n−t=next[n]n - t = next[n]nt=next[n]
    也就是 t=n−next[n]t = n - next[n]t=nnext[n]

    所以此题,求出所有next[i]next[i]next[i]的,那么前i个字符串构成的前缀的循环节长度为i−next[i]i - next[i]inext[i]

  • 代码

    /*
    * @Author: NEFU AB-IN
    * @Date: 2023-02-24 12:23:39
    * @FilePath: \Acwing\141\141.cpp
    * @LastEditTime: 2023-02-26 09:53:59
    */
    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    #undef int#define SZ(X) ((int)(X).size())
    #define ALL(X) (X).begin(), (X).end()
    #define IOS                                                                                                            \ios::sync_with_stdio(false);                                                                                       \cin.tie(nullptr);                                                                                                  \cout.tie(nullptr)
    #define DEBUG(X) cout << #X << ": " << X << '\n'
    typedef pair<int, int> PII;const int N = 1e6 + 10, INF = 0x3f3f3f3f;
    int ne[N];signed main()
    {int T = 1;int n;string s;while (cin >> n, n){cin >> s;s = " " + s;for (int i = 2, j = 0; i <= n; ++i){while (j && s[i] != s[j + 1])j = ne[j];if (s[i] == s[j + 1])++j;ne[i] = j;}printf("Test case #%d\n", T++);for (int i = 1; i <= n; ++i){int t = i - ne[i];if (i % t == 0 && i / t > 1){cout << i << " " << i / t << '\n';}}printf("\n");}return 0;
    }
    

相关文章:

141. 周期

Powered by:NEFU AB-IN Link 文章目录141. 周期题意思路代码141. 周期 题意 一个字符串的前缀是从第一个字符开始的连续若干个字符&#xff0c;例如 abaab 共有 5个前缀&#xff0c;分别是 a&#xff0c;ab&#xff0c;aba&#xff0c;abaa&#xff0c;abaab。 我们希望知道一…...

Windows下命令执行绕过技巧总结(渗透测试专用)

一、连接符1、双引号不要求双引号闭合举例&#xff1a;"who"a"mi" //闭合的 "who"a"mi //不闭合的2、圆括号必须在两边&#xff0c;不能包括中间的字符。举例&#xff1a;((whoami))3、^符号&#xff08;转译符号&#xff09;不可以在结尾&…...

mindspore的MLP模型(多层感知机)

导入模块 import hashlib import os import tarfile import zipfile import requests import numpy as np import pandas as pd import mindspore import mindspore.dataset as ds from mindspore import nn import mindspore.ops as ops import mindspore.numpy as mnp from …...

【论文极速读】VQ-VAE:一种稀疏表征学习方法

【论文极速读】VQ-VAE&#xff1a;一种稀疏表征学习方法 FesianXu 20221208 at Baidu Search Team 前言 最近有需求对特征进行稀疏编码&#xff0c;看到一篇论文VQ-VAE&#xff0c;简单进行笔记下。如有谬误请联系指出&#xff0c;本文遵循 CC 4.0 BY-SA 版权协议&#xff0c;…...

Flask-Blueprint

Flask-Blueprint 一、简介 概念&#xff1a; Blueprint 是一个存储操作方法的容器&#xff0c;这些操作在这个Blueprint 被注册到一个应用之后就可以被调用&#xff0c;Flask 可以通过Blueprint来组织URL以及处理请求 。 好处&#xff1a; 其本质上来说就是让程序更加松耦合…...

png图片转eps格式

下载latex工具后 在要转换的png图片文件夹路径下&#xff0c;打开命令行窗口&#xff0c;输入以下命令&#xff1a; bmeps -c fig图片名.png 图片名.eps...

English Learning - L2 语音作业打卡 Day2 2023.2.23 周四

English Learning - L2 语音作业打卡 Day2 2023.2.23 周四&#x1f48c; 发音小贴士&#xff1a;&#x1f48c; 当日目标音发音规则/技巧&#xff1a;&#x1f36d; Part 1【热身练习】&#x1f36d; Part2【练习内容】&#x1f36d;【练习感受】&#x1f353;元音[ ɔ: ]&…...

低频量化之 可转债 配债 策略数据 - 全网独家

目录历史文章可转债配债数据待发转债&#xff08;进展统计&#xff09;待发转债&#xff08;行业统计&#xff09;待发转债&#xff08;5证监会通过&#xff0c;PE排序&#xff09;待发转债&#xff08;5证监会通过&#xff0c;安全垫排序&#xff09;待发转债&#xff08;4发审…...

论文阅读_DALLE-2的unCLIP模型

论文信息 name_en: Hierarchical Text-Conditional Image Generation with CLIP Latents name_ch: 利用CLIP的层次化文本条件图像生成 paper_addr: http://arxiv.org/abs/2204.06125 doi: 10.48550/arXiv.2204.06125 date_read: 2023-02-12 date_publish: 2022-04-12 tags: [‘…...

软件测试5年,历经3轮面试成功拿下华为Offer,24K/16薪不过分吧

前言 转眼过去&#xff0c;距离读书的时候已经这么久了吗&#xff1f;&#xff0c;从18年5月本科毕业入职了一家小公司&#xff0c;到现在快5年了&#xff0c;前段时间社招想着找一个新的工作&#xff0c;前前后后花了一个多月的时间复习以及面试&#xff0c;前几天拿到了华为的…...

【软件工程】课程作业(三道题目:需求分析、概要设计、详细设计、软件测试)

文章目录&#xff1a;故事的开头总是极尽温柔&#xff0c;故事会一直温柔……&#x1f49c;一、你怎么理解需求分析&#xff1f;1、需求分析的定义&#xff1a;2、需求分析的重要性&#xff1a;3、需求分析的内容&#xff1a;4、基于系统分析的方法分类&#xff1a;5、需求分析…...

05 DC-AC逆变器(DCAC Converter / Inverter)简介

文章目录0、概述逆变原理方波变换阶梯波变换斩控调制方式逆变器分类逆变器波形指标1、方波变换器A 单相单相全桥对称单脉冲调制移相单脉冲调制单相半桥2、方波变换器B 三相180度导通120度导通&#xff08;线、相的关系与180度相反&#xff09;3、阶梯波逆变器独立直流源二极管钳…...

带你深层了解c语言指针

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言进阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍c语言中有关指针更深层的知识. 金句分享: ✨今天…...

2-MATLAB APP Design-下拉菜单栏的使用

一、APP 界面设计展示 1.新建一个空白的APP,在此次的学习中,我们会用到编辑字段(文本框)、下拉菜单栏、坐标区,首先在界面中拖入一个编辑字段(文本框),在文本框中输入内容:下拉菜单栏的使用,调整背景颜色,字体的颜色为黑色,字体的大小调为26. 2.在左侧组件库常用栏…...

七、HTTPTomcatServlet

1&#xff0c;Web概述 1.1 Web和JavaWeb的概念 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 在我们日常的生活中&#xff0c;经常会使用浏览器去访问百度、京东、传智官网等这些网站&#xff0c;这些网站统称为Web网站。如下就是通…...

LeetCode 热题 C++ 198. 打家劫舍

力扣198 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统会自动报警。 给定一个代表每个房屋存…...

C语言学习笔记——程序环境和预处理

目录 前言 一、程序环境 1. 翻译环境 1.1 主要过程 1.2 编译过程 2. 运行环境 二、预处理 1. 预定义符号 2. #define 2.1 #define定义标识符 2.2 #define定义宏 2.3 命名约定和移除定义 3. 条件编译 4. 文件包含 结束语 前言 每次我们写完代码运行的时候都…...

「JVM 高效并发」Java 内存模型

Amdahl 定律代替摩尔定律成为了计算机性能发展的新源动力&#xff0c;也是人类压榨计算机运算能力的最有力武器&#xff1b; 摩尔定律&#xff0c;描述处理器晶体管数量与运行效率之间的发展关系&#xff1b;Amdahl 定律&#xff0c;描述系统并行化与串行化的比重与系统运算加…...

C语言刷题(2)——“C”

各位CSDN的uu们你们好呀&#xff0c;今天小雅兰来复习一下之前所学过的内容噢&#xff0c;复习的方式&#xff0c;那当然是刷题啦&#xff0c;现在&#xff0c;就让我们进入C语言的世界吧 当然&#xff0c;题目还是来源于牛客网 完完全全零基础 编程语言初学训练营_在线编程题…...

第一个 Spring MVC 注解式开发案例(初学必看)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

JAVA中try catch无法捕获异常的原因是什么

Java 中的 try-catch 机制是处理异常的重要手段&#xff0c;但有时即使写了 try-catch 代码&#xff0c;异常仍会被抛出。这是因为 catch 块指定的异常类型可能无法与实际抛出的异常相匹配。让我们举一个代码意图捕获异常并打印特定信息的例子&#xff1a;public class Test {p…...

三极管实战指南:从NPN到PNP,手把手教你识别与使用(附常见误区解析)

三极管实战指南&#xff1a;从NPN到PNP&#xff0c;手把手教你识别与使用&#xff08;附常见误区解析&#xff09; 在电子设计的世界里&#xff0c;三极管就像电路中的"水龙头"&#xff0c;控制着电流的流动。无论是简单的LED驱动电路&#xff0c;还是复杂的音频放大…...

别再手动推导了!用Sophus库5分钟搞定机器人SLAM中的位姿插值与扰动更新

别再手动推导了&#xff01;用Sophus库5分钟搞定机器人SLAM中的位姿插值与扰动更新 在机器人SLAM开发中&#xff0c;你是否曾为手动推导旋转矩阵的插值公式而抓狂&#xff1f;是否在实现位姿扰动更新时被四元数微分弄得晕头转向&#xff1f;今天&#xff0c;我们将用Sophus库彻…...

误删Anaconda?4招紧急救援方案

问题背景与常见场景Anaconda被误删可能由误操作、系统崩溃、病毒攻击等原因导致&#xff0c;涉及环境、包、配置等关键数据丢失。抢救前的准备工作立即停止对Anaconda所在磁盘的写入操作&#xff0c;避免数据被覆盖。 确认删除方式&#xff08;回收站、ShiftDelete、格式化等&a…...

Jimeng LoRA企业落地案例:设计公司LoRA训练-测试-选型一体化流程

Jimeng LoRA企业落地案例&#xff1a;设计公司LoRA训练-测试-选型一体化流程 1. 项目简介 今天给大家分享一个特别实用的企业级AI应用案例——如何为设计公司搭建一套完整的LoRA模型训练、测试和选型流程。这个项目基于Jimeng&#xff08;即梦&#xff09;系列LoRA模型&#…...

Vue3+Vant4移动端架构设计:现代化移动应用工程实践

Vue3Vant4移动端架构设计&#xff1a;现代化移动应用工程实践 【免费下载链接】vue3-vant4-mobile &#x1f44b;&#x1f44b;&#x1f44b; 基于Vue3.2、vite3、vant4、pinia2、Typescript、windicss 等主流技术开发&#xff0c;集成 Dark Mode(暗黑)模式和系统主题色&#x…...

Labview 机器视觉(4)之 图像处理进阶 - 像素操作与批量保存

1. 像素操作&#xff1a;从入门到精通的实战指南 在工业自动化领域&#xff0c;图像处理的核心往往在于对像素级别的精准控制。LabVIEW作为一款强大的图形化编程工具&#xff0c;提供了丰富的像素操作函数&#xff0c;让工程师能够像搭积木一样构建复杂的视觉处理流程。 我第一…...

罗技鼠标宏压枪脚本:绝地求生精准射击的终极解决方案

罗技鼠标宏压枪脚本&#xff1a;绝地求生精准射击的终极解决方案 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中的后坐力控…...

未发表】“VMD-BKA-CNN-BiLSTM四模型多变量时序预测一键对比Matlab代码

【未发表】VMD-BKA-CNN-BiLSTM四模型多变量时序预测一键对比 Matlab代码 可用于风电预测&#xff0c;光伏预测等 基于变分模态分解结合黑翅鸳算法优化卷积神经网络结合双向长短期记忆神经网络的数据多变量时序预测一键对比 各种对比图都有 包含VMD-BKA-CNN-BiLSTM,VMD-CNN…...

基于Python的线上学习资源智能推荐系统毕设

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在构建一个基于Python的线上学习资源智能推荐系统&#xff0c;以实现个性化学习资源的精准推送。具体而言&#xff0c;研究目的可概括为以下几个方面&am…...