acwing 141. 周期

简介: acwing 141. 周期

141. 周期 - AcWing题库

#include<iostream>
#include<algorithm>
#include<cstring>
 
using namespace std ;
const int N = 1e6 +10 ;
int n , m ;
char s[N] ;
int ne[N] ;
void get_ne(){
  memset(ne,0,sizeof(ne)) ;
  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 ; 
  }
  
}
int main(){
  int t = 0 ;
  while(cin >> n , n ){
    cin >> s+ 1;
    get_ne() ;
    printf("Test case #%d\n",++t) ;
    for(int i = 2 ; i <=n ;i ++){
      if(i %(i-ne[i]) == 0 && i /(i-ne[i]) > 1)
        printf("%d %d\n",i , i /(i-ne[i])) ;
    }
    cout << endl ;
  }
}
目录
相关文章
AcWing 3498. 日期差值(每日一题)
AcWing 3498. 日期差值(每日一题)
|
8月前
|
Java 索引
leetcode-746:使用最小花费爬楼梯
leetcode-746:使用最小花费爬楼梯
54 0
【AcWing每日一题】3400. 统计次数
【AcWing每日一题】3400. 统计次数
68 0
|
编译器 C语言
##求斐波拉数列的前40项
##求斐波拉数列的前40项
71 0
leetcode 746 使用最小花费爬楼梯
leetcode 746 使用最小花费爬楼梯
82 0
leetcode 746 使用最小花费爬楼梯
【寒假每日一题】AcWing 3400. 统计次数(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
60 0
|
人工智能 算法 测试技术
【寒假每日一题】AcWing 4644. 求和(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
89 0
|
人工智能 测试技术
【寒假每日一题】AcWing 4655. 重新排序(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 1、前缀和与差分 2、排序不等式
62 0
|
Python
LeetCode 746. 使用最小花费爬楼梯
数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。
92 0
|
算法 Go 索引
算法练习第三天——杨辉三角
给定一个非负整数 num, 生成「杨辉三角」的前 num 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。
算法练习第三天——杨辉三角

热门文章

最新文章

下一篇
开通oss服务