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 ;
  }
}
目录
相关文章
|
6月前
leetcode代码记录(使用最小花费爬楼梯
leetcode代码记录(使用最小花费爬楼梯
36 0
|
6月前
|
Java 索引
leetcode-746:使用最小花费爬楼梯
leetcode-746:使用最小花费爬楼梯
43 0
【AcWing每日一题】3400. 统计次数
【AcWing每日一题】3400. 统计次数
59 0
力扣 -- 746. 使用最小花费爬楼梯
力扣 -- 746. 使用最小花费爬楼梯
【寒假每日一题】AcWing 3400. 统计次数(补)
目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解
50 0
leetcode 746 使用最小花费爬楼梯
leetcode 746 使用最小花费爬楼梯
78 0
leetcode 746 使用最小花费爬楼梯
|
Python
LeetCode 746. 使用最小花费爬楼梯
数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。
85 0
使用最小花费爬楼梯(LeetCode-746)
使用最小花费爬楼梯(LeetCode-746)
78 0