【Baltic2009】bzoj 1355 Radio Transmission

2023-11-07 21:09

本文主要是介绍【Baltic2009】bzoj 1355 Radio Transmission,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Description 给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少.
Input 第一行给出字符串的长度,1 < L ≤ 1,000,000. 第二行给出一个字符串,全由小写字母组成. Output
输出最短的长度

对原串进行kmp匹配,那么l-next[l]就是答案。
根据kmp的性质可以知道,s[1..next[l]]==s[next[l]+1..2* next[l]+2],
s[next[l]+1..2* next[l]+2]==s[2* next[l]+3..3*next[l]+4]

以此类推,1..next[l]是原串的子串,又因为next[l]是极大值,所以l-next[l]是极小值。
其实poj2406【见这里】也可以用类似的方法,不过还要判断一下子串长是不是原串的因数。

#include<cstdio>
#include<cstring>
char s[1000010];
int next[1000010];
int main()
{int i,j,k,m,n,p,q,x,y,z,l;scanf("%d%s",&l,s+1);for (i=2,j=0;i<=l;i++){while (j&&s[i]!=s[j+1]) j=next[j];if (s[i]==s[j+1]) j++;next[i]=j;}printf("%d\n",l-next[l]);
}

这篇关于【Baltic2009】bzoj 1355 Radio Transmission的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/366290

相关文章

Ajax中根据json数据不同,对页面上的单选框Radio进行回显

Ajax中根据json数据不同,对页面上的单选框Radio进行回显 js代码: $(document).ready(function(){$.ajax({type: "POST",url: path+"/pop/nowTodayMeet2",dataType: "json",success: function(data){$("#discussTopicsEdit").val(da

前端百科---点击文字选中Radio

在进行Web过程中,Radio单选是必不可少的.但是如果用户只能通过点击Radio的圆圈才能实现选项的选择,这样就会导致交互不够好...       怎么解决呢?使用JavaScript当然可以,但是直接使用HTML5自带属性不是更好吗?       废话少说,直接上demo:       第一种:label标签使用for属性指向input:radio;       第二

【BZOJ】1324 Exca王者之剑 最大权独立集

传送门:【BZOJ】1324  Exca王者之剑 题目分析:赤裸裸的最大权独立集。。。最小割解决 代码如下: #include <cstdio>#include <vector>#include <cstring>#include <algorithm>using namespace std ;#define REP( i , a , b ) for ( int

【BZOJ】1026: [SCOI2009]windy数 数位DP

传送门:【BZOJ】1026: [SCOI2009]windy数 题目分析:数位DP水题。 代码如下: #include <stdio.h>#include <cstring>#include <algorithm>#define rep( i , a , b ) for ( int i = a ; i < b ; ++ i )#define For( i ,

【BZOJ】2152: 聪聪可可 点分治

传送门:【BZOJ】2152: 聪聪可可 题目分析:记录权值和%3的路径的个数。。。然后去重。。没了。。 代码如下: #include <vector>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std ;typedef lo

ABAP Dialog Radio Button

额.妈了个巴子,整了一天,才发现,原来Dialog 的Radio Button 是要右键去设置组的 我就说为什么不行咧 误区:我以为是属性那里的组去设置的

element ui 中checkbox或radio不可勾选/不可取消勾选/点击没有反应

不知道有没有小伙伴遇到过,动态生成的checkbox或radio会出现无法勾选或者不可取消勾选,或者点击没有反应的时候。   我v-model绑定了数据,而且设置是true,但是checkbox生成后,就无法点击了,也不触发这个字段的true和false的变化。   解决办法就是,设置的时候,需要使用vue的$set方法设置

BZOJ 2440 2301 莫比乌斯应用

http://www.lydsy.com/JudgeOnline/problem.php?id=2440 Description 小 X 自幼就很喜欢数。但奇怪的是,他十分讨厌完全平方数。他觉得这些 数看起来很令人难受。由此,他也讨厌所有是完全平方数的正整数倍的数。然而 这丝毫不影响他对其他数的热爱。  这天是小X的生日,小 W 想送一个数给他作为生日礼物。当然他不能送一 个小X讨厌

BZOJ 3732: Network(最小生成树+倍增)

题目链接 题意:给出一个图,每个询问的格式是:A B,表示询问从A点走到B点的所有路径中,最长的边最小值是多少 很明显最终查询的边一定是在最小生成树里面的,先跑出最小生成树,然后,可以树链剖分,也可以使用倍增来计算 #include<bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#define

【Material-UI】深入探讨Radio Group组件的自定义功能

文章目录 一、Radio Group组件概述1. 组件介绍2. 自定义的重要性 二、Radio Group组件的自定义1. 样式定制示例2. 代码详解3. 样式自定义的注意事项 三、如何利用自定义功能提升用户体验1. 提升视觉一致性2. 增强可用性3. 实现更灵活的布局 四、总结 Material-UI 是 React 生态系统中的顶级UI框架之一,为开发者提供了丰富的组件库,