比赛 20231005 评测结果 AAAAAAAAA
题目名称 无线传输 最终得分 100
用户昵称 zxhhh 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2023-10-05 11:23:49
显示代码纯文本
#include <bits/stdc++.h>

using namespace std;
const int N = 1e6+5;  // n\le 106?
int n, nxt[N];
char s[N]; 

int main () {
    freopen("wareless.in", "r", stdin); 
    freopen("wareless.out", "w", stdout); 
    scanf("%d%s", &n, s+1); 
    nxt[0] = -1; nxt[1] = 0;
    for (int i = 2, j = 0;i <= n;i++) {
        while (j && s[j+1] != s[i]) j = nxt[j]; 
        if (s[j+1] == s[i]) j++; 
        nxt[i] = j;
    } 
    printf("%d", n-nxt[n]); 
    return 0;
}