题目链接:

  codeforces 629C Famil Door and Brackets

题目描述:

  给出完整的括号序列长度n,现在给出一个序列s长度为m。枚举串p,q,使得p+s+q是合法的括号串,长度为n,问p,q的取值数目。

解题思路:

  枚举p的长度,可以直接得到q的长度。因为要满足在任意位置'(' 数目大于 ’)‘ 的数目,所以统计一下s串中 ’(‘ - ')' 的最小数目minx。dp[i][j] 代表 到位置 i 时,满足 '(' - ')' == j 的情况数目。然后枚举p的 j (i > -minx), 然后根据p串推出q串满足合法串的状态,两者相乘。

 #include <bits/stdc++.h>
using namespace std; typedef __int64 LL;
const int INF = 1e9 + ;
const int maxn = ;
const int N = ;
const int mod = 1e9+; ///dp[i][j] 到第i个位置,有j个不平衡(括号
LL dp[N][N], n, m;
char str[maxn]; void init ()
{
int num = ;
memset (dp, , sizeof(dp));
dp[][] = ; for (int i=; i<=num; i++)
for (int j=; j<=i; j++)
{
if (j > )
dp[i][j] = (dp[i][j] + dp[i-][j-]) % mod;
dp[i][j] = (dp[i][j] + dp[i-][j+]) % mod;
}
} LL solve ()
{
int minx = INF, tmp = , num = n - m; for (int i=; str[i]; i++)
{
if (str[i] == '(')
tmp ++;
else
tmp --;
minx = min (minx, tmp);
} LL ans = ;
for (int i=; i<=num; i++)
for (int j=; j<=i; j++)
if (j >= -minx && num-i >= j + tmp)
ans = (ans + dp[i][j]*dp[num-i][j+tmp]) % mod; return ans;
} int main ()
{
init ();
while (scanf ("%I64d %I64d", &n, &m) != EOF)
{
scanf ("%s", str);
printf ("%I64d\n", solve ());
}
return ;
}

最新文章

  1. 数据结构 浙大MOOC 笔记二 线性结构
  2. Webdriver实现原理
  3. scrapy数据存入mongodb
  4. cmd获取系统时间
  5. 【转载】C#后台声明式验证,远离if验证
  6. php中的短标签 太坑人了
  7. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
  8. Docker私有仓库1
  9. javascript 之基本数据类型、引用数据类型区别--02
  10. 对Java代码加密的两种方式,防止反编译
  11. Linux tshark抓包
  12. 19 Go的全能ORM简单入门
  13. iOS开发-为UITableViewCell添加横线
  14. [转][darkbaby]任天堂传——失落的泰坦王朝(中)
  15. CF 459A &amp;&amp; 459B &amp;&amp; 459C &amp;&amp; 459D &amp;&amp; 459E
  16. 【MST】P2323 [HNOI2006]公路修建问题
  17. Libpacp 深度剖析
  18. Mplayer1.0rc2移植到am335x开发板
  19. C#多线程编程之:异步方法调用
  20. HDU 5642 King&#39;s Order dp

热门文章

  1. IE8与vs2005冲突 添加MFC类向导错误解决方法—— internet explorer脚本错误
  2. STM32唯一身份识别ID(器件电子签名)的读取以及芯片Flash大小读取
  3. IE67 下 setattribute class 失效
  4. Codeforces Round #106 (Div. 2) D. Coloring Brackets —— 区间DP
  5. oracle:rman恢复----通过增量备份来恢复
  6. Mother&#39;s Milk
  7. Python项目使用memcached缓存
  8. 【前端】CentOS 7 系列教程之五: 安装最新版 nginx 并转发 node 服务
  9. http监听工具Fildder
  10. HDFS之二:HDFS文件系统JavaAPI接口