input前輩寫的詳解請參考;
對於乙個字串,我們可以寫出這個字串的所有非空前綴。例如「abab」,非空前綴有:「a」,「ab」,「aba」,「abab」。對於每乙個字首,我們可以計算出他在原字串中出現的次數。所以我們可以看到,「a」在原字串中出現了2次;
「ab」在原字串中出現了2次;「aba」出現了1次;「abab」出現了一次。
現在,要求您計算出給定的字串的所有非空前綴出現的次數之和。對於「abab」,答案就是2+2+1+1=6。
由於答案可能非常大,所以要求輸出答案對10007取模的值。
輸入由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,說明不存...