1.蓝桥杯2021 A组I题 括号序列
合法括号对当前仅当左括号数>=右括号数时成立
设\(dp[i][j]\)为前\(i\)个括号中左括号比右括号多\(j\)个的方案数(只添加左括号)
当\(s[i]='('\)时,\(dp[i][j]=dp[i-1][j-1]\)
当\(s[i]=')'\)时,分类如下:
添加\(0\)个左括号:\(dp[i][j]=dp[i-1][j+1]\);
添加\(1\)个左括号:\(dp[i][j]=dp[i-1][j]\);
添加\(2\)个左括号:\(dp[i][j]=dp[i-1][j-1]\)
...
添加\(j+1\)个左括号:\(dp[i][j]=dp[i-1][0]\)。
故
\[dp[i][j]=dp[i-1][j+1]+dp[i-1][j]+...+dp[i-1][0] \]错位相减:
\[dp[i][j-1]=dp[i][j]+...+dp[i-1][0] \]故
\[dp[i][j]=dp[i-1][j+1]+dp[i][j-1] \]答案即为\(dp[n][min\{i\}]\)
对添加右括号的处理相同,只需要将字符串翻转再取反即可。
参考:此处
标签:题目,好题,括号,添加,&&,dp From: https://www.cnblogs.com/MrWangnacl/p/16993882.html