NKOI 2388 字串摺疊

2021-07-23 08:45:54 字數 1087 閱讀 4798

字串摺疊

time limit:10009ms  memory limit:65536k

total submit:4 accepted:0

case time limit:1000ms

description

摺疊的定義如下:

1. 乙個字串可以看成它自身的摺疊。記作s =s

2. x(s)是x(x>1)個s連線在一起的串的摺疊。記作x(s) = ssss…s(x個s)。

3. 如果a = a』, b=b』,則ab = a』b』

例如,因為3(a) = aaa, 2(b) = bb,所以3(a)c2(b) = aaacbb,而2(3(a)c)2(b)=aaacaaacbb給乙個字串,求它的最短摺疊。

例如aaaaaaaaaabababccd的最短摺疊為:9(a)3(ab)ccd。

input

僅一行,即字串s,長度保證不超過100。

output

僅一行,即最短的摺疊長度

sample input

neercyesyesyesneercyesyesyes
sample output

14
source

hzoi

區間動規,f[i][j]表示i~j區間內能夠達到的最小長度

f[i][j]=mini<=k如果k+1~j能夠摺疊成i~k,那麼有如下轉移方式

f[i][j]=mingetcnt是計算十進位制位數的函式

#include#include#include#includeusing namespace std;

const int maxn=105,inf=1e9;

char s[maxn];

int n,f[maxn][maxn];

bool ok(int l1,int r1,int l2,int r2)

int getcnt(int x)

int main()

cout<

bzoj1090 字串摺疊

問題描述 摺疊的定義如下 1.乙個字串可以看成它自身的摺疊。記作s s 2.x s 是x x 1 個s連線在一起的串的摺疊。記作x s ssss s x個s 3.如果a a b b 則ab a b 例如,因為3 a aaa,2 b bb,所以3 a c2 b aaacbb,而2 3 a c 2 b ...

SCOI2003 字串摺疊

scoi2003 字串摺疊 時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld摺疊的定義如下 乙個字串可以看成它自身的摺疊。記作s s x s 是x x 1 個s連線在一起的串的摺疊。記作x s ssss s x個s...

SCOI2003 字串摺疊

摺疊的定義如下 乙個字串可以看成它自身的摺疊。記作s s x s 是x x 1 個s連線在一起的串的摺疊。記作x s ssss s x個s 如果a a b b 則ab a b 例如,因為3 a aaa,2 b bb,所以3 a c2 b aaacbb,而2 3 a c 2 b aaacaaacbb ...