FZU Problem 2030 括號問題

2022-05-06 08:24:10 字數 878 閱讀 5806

給出乙個字串,其中包括3種字元: 『(『, 『)』, 『?』.其中?表示這個字元可以是』(『也可以是』)』. 現在給出字串s,你可以在』?』處填寫』(『 或者 『)』,當然隨意填寫得到的序列可能是括號不匹配的。例如」(?」,如果你填寫』(『那麼」((「是括號不匹配的! 現在你的任務是確定你有多少種填寫方案,使得最終的字串是括號匹配的!2種方案是不同的,當2種方案中至少存在1個填寫字元是不同的。 例如,對於」((??))」,我們可以得到2種方案: 「((()))」, 「(()())」。

資料報含多組測試資料第一行輸入乙個字串s(s的長度不超過16)。

輸出乙個整數,表示合法的填寫方案數。

((??))

2講解:剛開始看這個題,你會想到括號配對,但是呢這兩個題卻又不太一樣,所以我們依然也可以採用那種方式來做的,只不過要變換一次遞迴一次,最後遞迴出來結果,下面就以例題為例子講解一下:

注意:遇見0了則不能再進性下去;

如圖所示:

1 #include2 #include3 #include4

using

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種方案...