P4302 SCOI2003 字串摺疊

2022-04-28 17:42:11 字數 975 閱讀 5181

摺疊的定義如下:

乙個字串可以看成它自身的摺疊。記作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

給乙個字串,求它的最短摺疊。例如aaaaaaaaaabababccd的最短摺疊為:9(a)3(ab)ccd。

輸入格式:

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

輸出格式:

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

輸入樣例#1:複製

neercyesyesyesneercyesyesyes

輸出樣例#1:複製

14

乙個最短的摺疊為:2(neerc3(yes))

區間dp,轉移時只有右區間能用若干個左區間表示出來時才轉移

#includeusing

namespace

std;

const

int maxn = 1e2+10

;char

a[maxn];

intf[maxn][maxn],n;

bool

get(int x,int y,int x1,int

y1)

return

true;}

int cal(int

k )

return

sum;

}int

main()

}printf("%d

",f[0][n-1

]);

return0;

}

P4302 SCOI2003 字串摺疊

演算法 區間動態規劃 f i j f i j f i j 表示處理i到j i到ji到 j這段區間所需要的最小代價 兩種轉移方法 一.標準的區間dpdp dp的轉移f i j min f i j f i k f k 1 j f i j min f i j f i k f k 1 j f i j mi ...

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 ...