UESTC 1696 一道簡單的字串題

2021-08-07 20:34:27 字數 872 閱讀 5312

前輩寫的詳解請參考;

對於乙個字串,我們可以寫出這個字串的所有非空前綴。例如「abab」,非空前綴有:「a」,「ab」,「aba」,「abab」。對於每乙個字首,我們可以計算出他在原字串中出現的次數。所以我們可以看到,「a」在原字串中出現了2次;

「ab」在原字串中出現了2次;「aba」出現了1次;「abab」出現了一次。

現在,要求您計算出給定的字串的所有非空前綴出現的次數之和。對於「abab」,答案就是2+2+1+1=6。

由於答案可能非常大,所以要求輸出答案對10007取模的值。

input

輸入由2行組成;

第一行輸入乙個正整數n(n<=1000000),代表字串的長度;

第二行輸入乙個長度為n的字串,只由小寫字母構成。

output

輸出由一行組成;

輸出乙個整數,代表給定的字串的所有非空前綴出現的次數之和對10007取模的值。

sample input

4 abab

sample output

6 hint

#include

#include

int n;

char b[1000006]=;

int next[1000006]=;//記錄字首b[1]-b[i]中包含了字首b[1]-b[j]中的j值;(並不包括自身和b[1]-b[i-1])

int dp[1000006]=;//記錄每個字首的總個數;

void sourch()

}int main()

printf("%d\n",sum);

}

一道簡單的題目

這是校賽的一道題,當時覺得挺難,後來就覺得簡單,知道思路後就很好做了。題目是這樣子的 1008 植樹節b time limit 1 sec memory limit 128 mb submit 4 solved 4 submit status web board description 植樹節那天每...

一道簡單的題目

這是一道leetcode的題目,描述如下 given an unsorted integer array,find the first missing positive integer.for example,given 1,2,0 return 3,and 3,4,1,1 return 2.you...

一道簡單的題

阿里巴巴的一道面試題 25.給定乙個整數陣列和乙個整數,返回兩個陣列的索引,這兩個索引指向的數字的加和等於指定的整數。需要最優的演算法,分析演算法的空間和時間複雜度。include include using namespace std struct stwoindex 初始化,同時等於0,說明不存...