傳送門
對於這道題, 有好多大佬發了題解, 狀態轉移方程也都一樣, 但是那些大佬們都是只給個狀態轉移方程, 以至於我這個蒟蒻很難搞懂什麼意思, 所以發篇題解說下自己的理解
$f[i][j][k] = 0 \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad \qquad (a_\ne b_) $
f [i
][j]
[k]=
f[i−
1][j
−1][
k]+s
um[i
−1][
j−1]
[k−1
](ai
=bj)
f[i][j][k] = f[i-1][j-1][k]+sum[i-1][j-1][k-1] \qquad (a_= b_)
f[i][j
][k]
=f[i
−1][
j−1]
[k]+
sum[
i−1]
[j−1
][k−
1](a
i=b
j)
這裡用到了滾動陣列,就不過多說明了, 就只簡單說一說狀態轉移方程的含義 :
對於f [i
][j]
[k
]f[i][j][k]
f[i][j
][k]
的定義意思是a
aa串選到aia_
ai(aia_
ai被選), b
bb串目前選到bjb_
bj(bjb_
bj之前的和bjb_
bj都被選)的時候分成k
kk段選取共有多少種選法
另外再開乙個陣列記錄字首和, sum
[i][
j][k
]sum[i][j][k]
sum[i]
[j][
k]意思是a
aa串選到aia_
ai(aia_
ai與之前的怎麼選都行), b
bb串目前選到bjb_
bj(bjb_
bj之前的和bjb_
bj都被選)的時候分成k
kk段選取所有選取方案的和
s um
[i][
j][k
]=su
m[i−
1][j
][k]
+f[i
][j]
[k
]sum[i][j][k] = sum[i - 1][j][k] + f[i][j][k]
sum[i]
[j][
k]=s
um[i
−1][
j][k
]+f[
i][j
][k]
對於sum陣列的計算不必多說, 但對於f的計算我是想了好久才想明白
若$a_\ne b_ \ f[i][j][k] = 0 ,這個
很容易理
解,因為
若, 這個很容易理解, 因為若
,這個很容易
理解,因
為若a_\ne b_的話,
那麼
的話, 那麼
的話,那
麼a_$選的話是不可能有方案的
若$a_= b_ \ f[i][j][k] = f[i-1][j-1][k]+sum[i-1][j-1][k-1] $, 可能我比較笨吧, 想了好久 :
可以把aib
ja_ \ b_
aibj
與a i−
1bj−
1a_ \ b_
ai−1b
j−1
看做乙個整體, 這樣的話,也就只有一種方案, 就是f[i
−1][
j−1]
[k
]f[i-1][j-1][k]
f[i−1]
[j−1
][k]
, 因為sum定義是aia_
ai可能選或不選的方案和, 但aia_
ai必選;
可以把aib
ja_ \ b_
aibj
看做乙個單獨的部分, 這樣的話, 方案就會多上sum
[i−1
][j−
1][k
−1
]sum[i-1][j-1][k-1]
sum[i−
1][j
−1][
k−1]
, 因為看做單獨的部分的話, 那麼就相當於$a_ $ (ai−
1a_
ai−1
選或不選) bj−
1\ b_
bj−1
每乙個可行方案後面加上乙個匹配的aia_
ai $ \ b_,所以
此時
, 所以此時
,所以此
時a_ \ b_(
((a_選或不
選)每一
個可行方
案對
於選或不選)每乙個可行方案對於
選或不選)每
乙個可行
方案對於
a_ \ b_$匹配這種情況都是可行的
這就是本人對於這個狀態轉移方程的理解, **其他大佬們都發了, 本人不再贅述
洛谷 P2679子串
題目背景 無 題目描述 有兩個僅包含小寫英文本母的字串 a 和 b。現在要從字串 a 中取出 k 個互不重疊的非空子串,然後把這 k 個子串按照其在字串 a 中出現的順序依次連線起來得到一 個新的字串,請問有多少種方案可以使得這個新串與字串 b 相等?注意 子串取出 的位置不同也認為是不同的方案。輸...
洛谷 P2679 子串
f i j p 0 1 表示b前j個字元由a的前i個字元分成p段,且a i 選或不選的方案數.1 當前a i 1 可以不選 f i 1 j 1 p 1 0 2 當前a i 與a i 1 在同一段上 f i 1 j 1 p 1 3 當前a i 與a i 1 不在同一段上 f i 1 j 1 p 1 1...
洛谷P2679 NOIP2015 子串
無 有兩個僅包含小寫英文本母的字串 a 和 b。現在要從字串 a 中取出 k 個互不重疊的非空子串,然後把這 k 個子串按照其在字串 a 中出現的順序依次連線起來得到一 個新的字串,請問有多少種方案可以使得這個新串與字串 b 相等?注意 子串取出 的位置不同也認為是不同的方案。輸入格式 輸入檔名為 ...