ICode9

精准搜索请尝试: 精确搜索
  • luogu P4391 [BOI2009]Radio Transmission 无线传输2021-03-03 19:32:15

    想了一堆奇怪的做法,最后通过观察大数据过了。 链接 思路 开始观察 \(border\) 长度盲猜了一个结论,就看在第一个有数值的位置前有几个零,结果错了。 下了数据点后看了一下,发现一段连续后又会出现零,但是似乎每一个合法的字符串在最后都会变回一段从1开始的连续序列,从1一直到字符串结

  • 洛谷 P4391 [BOI2009]Radio Transmission 无线传输(KMP)2021-02-04 10:32:04

      假设字串长度为 x,字符串从 1 开始计数 next[1]=next[2]=……next[x]=0 next[x+1]=1 next[x+n]=n 发现从 x+1 位置开始,next 数组逐渐递增 1 所以答案为 n-next[n]  const int N=1e6+5; int n,m; int i,j,k; char a[N]; int f[N]; void getfail(char *s)

  • Luogu4391 [BOI2009]Radio Transmission 无线传输 (KMP)2019-07-24 16:01:46

    \(最小循环节\) \(=\) \(lenghth - next[lenghth]\) #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define R(a,b,c) for(register int a = (b); a <= (c); ++ a) #define nR(a,b,c)

  • P4391 [BOI2009]Radio Transmission 无线传输2019-07-15 12:05:26

    呐呐呐题面 这题可以说是kmp的简化版,也就是说只用求一下next数组,答案输出为n-next[n],那么为什么呢,其实这也很好想,next[i]存储的是下标为i的前缀与从头开始最长的相同前缀的尾下标,故next[n]表示的也就是除去第一个循环节之外的其他长度 #include<set>#include<map>#include<list>#i

  • 洛谷P4391 [BOI2009]Radio Transmission 无线传输2019-07-13 23:02:19

    (https://www.luogu.org/problemnew/show/P4391) 题目描述 给你一个字符串,它是由某个字符串不断自我连接形成的。 但是这个字符串是不确定的,现在只想知道它的最短长度是多少. 输入输出格式 输入格式:   第一行给出字符串的长度,1 < L ≤ 1,000,000. 第二行给出一个字符串,全由小写字母

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有