1100 - 萌萌噠的第五題
time limit:10s memory limit:128mbyte
submissions:322solved:67
description
給出乙個長度為m的字串,請問有多少個長度為n的字串不存在子串等於給出的字串。為了簡化問題,我們規定所有字串只包含小寫英文本母。
輸入資料:
包含多組輸入資料(<=15),每組資料:
第一行包含兩個整數n和m(1
<= n,m <= 1000)
第二行包含乙個長度為m的字串,只含有小寫字母。
input
包含多組輸入資料(<=15),每組資料: 第一行包含兩個整數n和m(1
<= n,m <= 1000) 第二行包含乙個長度為m的字串,只含有小寫字母。
output
每組資料輸出一行,表示答案,這個答案可能會很大,所以只需要輸出答案對10^9+7求餘的結果。
sample input22
aa32aa
sample output
67517525
solution
「玲瓏杯」acm比賽 round #11
kmp求出給定字串的next陣列
通過next陣列求出c[
i][j
]=字元
串結尾能
匹配模式
串開頭i
個字母,
在字串
結尾加上
字母j,
還能匹配
多個個字
母 d[
i][j
]=∑26
k=0d
[i−1
][c[
i−1]
[k]]
∗(c[
i−1]
[k]==
j) d
[0][
0]=1
ans=∑m−
1i=0
d[n]
[i]
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//#include
using
namespace
std;
#define ll long long
#define ull unsigned long long
#define pii pair
#define inf 1000000007
#define pll pair
#define pid pair
const
int inf=1e9+7;
const
int n = 1e3+5;
char p[n];
ll d[n][n];
int c[n][26];
ll dp(int n,int m)}}
ll ans=0;
for(int i=0;ireturn ans;
}int next[n];
void get_nextval(char *p, int *next)
else
}else
}}void initc(int m)
c[i][j]=k+1;}}
}int main()
return
0;}
玲瓏OJ 1097 萌萌噠的第二題 LIS
1097 萌萌噠的第二題 time limit 5s memory limit 128mbyte submissions 610solved 155 description 一條東西走向的河兩邊有都排著工廠,北邊有n間工廠a提供原材料,南邊有n間工廠b進行生產。現在需要在工廠a和工廠b之間建運輸橋以...
玲瓏杯 1099萌萌噠的第四題
給乙個數x,定義乙個函式f x 的結果是x的各位數字的平方和,若經過無數次遞迴操作之後若結果為1,也就是f f f f x 1,那麼這個數被認為是乙個特別的數。給出乙個數x請問這個數是否特別。input 包含多組測試資料 20 每組資料一行乙個整數x 1 x 1000000000 output 每組...
玲瓏杯 1101 萌萌噠的第六題(亂搞)
1101 萌萌噠的第六題 time limit 2s memory limit 128mbyte submissions 306solved 104 description 乙個凸多邊形的每個角都是rgb三種顏色的其中一種,保證相鄰的兩個點顏色都不一樣,請問是否能用多條不相交的對角線把多邊形切成多個...