給出乙個字串,其中包括3種字元: 『(『, 『)』, 『?』.其中?表示這個字元可以是』(『也可以是』)』. 現在給出字串s,你可以在』?』處填寫』(『 或者 『)』,當然隨意填寫得到的序列可能是括號不匹配的。例如」(?」,如果你填寫』(『那麼」((「是括號不匹配的! 現在你的任務是確定你有多少種填寫方案,使得最終的字串是括號匹配的!2種方案是不同的,當2種方案中至少存在1個填寫字元是不同的。 例如,對於」((??))」,我們可以得到2種方案: 「((()))」, 「(()())」。
資料報含多組測試資料第一行輸入乙個字串s(s的長度不超過16)。
輸出乙個整數,表示合法的填寫方案數。
((??))
2講解:剛開始看這個題,你會想到括號配對,但是呢這兩個題卻又不太一樣,所以我們依然也可以採用那種方式來做的,只不過要變換一次遞迴一次,最後遞迴出來結果,下面就以例題為例子講解一下:
注意:遇見0了則不能再進性下去;
如圖所示:
1 #include2 #include3 #include4using
namespace
std;
5char str[1010];6
intlen;
7int
ans;
8void fun(int end,intk)9
14if(k<0)15
18else
if(str[end]=='?'
)1923else
if(str[end]=='('
)2427else
if(str[end]==')'
)2831}
32int
main()
3341
return0;
42 }
FZU Problem 2030 括號問題
對於小資料用這dfs,大資料就用遞推的思想。include include include include include include include include include include using namespace std const int maxn 20 char str m...
FZU2030 括號匹配
題目大意 略 題目思路 資料範圍很小,可以搜尋,但是如果資料範圍較大則只能dp 用二維陣列表示狀態dp i j 表示掃瞄到第i個字元時有j個 還未完成匹配,而答案就是dp len 1 0 len表示字串長度,dp len 1 0 表示掃瞄完最後乙個字元後沒有未匹配的 include include ...
FZU 2030 括號問題(搜尋)
problem 2030 括號問題 給出乙個字串,其中包括3種字元 其中?表示這個字元可以是 也可以是 現在給出字串s,你可以在 處填寫 或者 當然隨意填寫得到的序列可能是括號不匹配的。例如 如果你填寫 那麼 是括號不匹配的!現在你的任務是確定你有多少種填寫方案,使得最終的字串是括號匹配的!2種方案...