Bracket sequence

Given string s made up with ()?, count the way to substitude ? with ( or ) to form regular bracket sequence.

Input

A string s.

(1≤|s|≤1000)

Ouptut

An integer denotes the number of ways modulo (109+7).

Sample input

????

Sample output

2

思路:dp[x][y]字符串长为x时,左括号还有y个未匹配。

#include<iostream>
#include<cstring>
using namespace std;
const int mm=1009;
const int mod=1e9+7;
char s[mm];
int dp[2][mm];
int main()
{while(cin>>s){int len=strlen(s);memset(dp,0,sizeof(dp));dp[0][0]=1;int z=0;for(int i=1;i<=len;i++){if(s[i-1]=='('){for(int j=1;j<=i;j++)dp[z^1][j]=dp[z][j-1];dp[z^1][0]=0;}else if(s[i-1]==')'){for(int j=0;j<i;j++)dp[z^1][j]=dp[z][j+1];}else{for(int j=1;j<=i;j++)dp[z^1][j]=dp[z][j-1];dp[z^1][0]=0;for(int j=0;j<i;j++)dp[z^1][j]=(dp[z][j+1]+dp[z^1][j])%mod;}z^=1;}cout<<dp[z][0]<<"\n";}
}

转载于:https://www.cnblogs.com/nealgavin/archive/2013/03/13/3206130.html

LS 24 Bracket sequence(DP)相关推荐

  1. Codeforces Beta Round #5 C. Longest Regular Bracket Sequence 栈/dp

    C. Longest Regular Bracket Sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.c ...

  2. Codeforces 524F And Yet Another Bracket Sequence 哈希

    And Yet Another Bracket Sequence 枚举起点, 增加的(肯定在最前面, 增加的)肯定在最后面, 比字典序用hash, 卡了自然溢出.. #include<bits/ ...

  3. Educational Codeforces Round 4 C. Replace To Make Regular Bracket Sequence 栈

    C. Replace To Make Regular Bracket Sequence 题目连接: http://www.codeforces.com/contest/612/problem/C De ...

  4. Codeforces Round #350 (Div. 2) E. Correct Bracket Sequence Editor 栈 链表

    E. Correct Bracket Sequence Editor 题目连接: http://www.codeforces.com/contest/670/problem/E Description ...

  5. CF思维联系–CodeForces -224C - Bracket Sequence

    ACM思维题训练集合 A bracket sequence is a string, containing only characters "(", ")", ...

  6. CodeForces - 224C. Bracket Sequence (栈模拟)简单做法

    A bracket sequence is a string, containing only characters "(", ")", "[&quo ...

  7. cf1556Compressed Bracket Sequence

    cf1556Compressed Bracket Sequencex 题意: 给你n个数,奇数位置上的数表示左括号的数量,偶数位置上的数表示右括号的数量.问有多少个[l,r]是满足括号匹配的 题解: ...

  8. Codeforces 26B. Regular Bracket Sequence

    Codeforces 26B. Regular Bracket Sequence 传送门:https://codeforces.com/problemset/problem/26/B 题目大意: 其实 ...

  9. C. Compressed Bracket Sequence

    William has a favorite bracket sequence. Since his favorite sequence is quite big he provided it to ...

最新文章

  1. Java开发神器Lombok的使用与原理
  2. Python:用字典建立一个通讯录,向字典中添加和删除通讯人信息,查询某个人的信息,然后输出通讯录中所有人的信息。
  3. android布局的作用,Android UI布局经验总结
  4. 微信官方jssdk Demo -php版
  5. Navicat 9.1、10.0 简体中文最新版,注册码(For Mysql)
  6. 前端学习(3064):vue+element今日头条管理-状态管理
  7. 满满的干货!mysql技术介绍
  8. html css字幕滚动代码,纯CSS实现滚动3D字幕
  9. 产品管理的工作流程是什么
  10. python核心编程第二版第六章答案
  11. 泛函分析 06.03 线性算子的谱理论 - 有界自共轭线性算子的谱
  12. 电子商务的未来谁主宰?
  13. Python3---有关日期的处理---最近自然周最近自然月最近一周最近一月---dateutil模块
  14. 基于MIMO的无线携能通信系统优化问题的基础知识和研究方向
  15. 安装安全防护软件有助于保护计算机不受侵害,安装安全防护软件有助于保护计算机不受病毒侵害。...
  16. r语言结构方程模型可视化_模型一个结构方程模型(SEM)的简单实验
  17. Java直接控制打印机打印
  18. 微信小程序input禁止输入特殊表情符号与空格
  19. 邮件服务器问题--邮件积压、传递延迟解决方法
  20. photoshop基础知识大全

热门文章

  1. unity3d 摄像机跟随鼠标和键盘的控制
  2. Android代码抄袭Java曝猛料 新证据出现
  3. mysql实战33 | 我查这么多数据,会不会把数据库内存打爆?
  4. 基于zbus的MySQL透明代理(100行)
  5. 防火墙配置十大任务之十,构建虚拟防火墙
  6. 关闭子窗口 父窗口自动刷新
  7. linux 内核配置过程中遇到的问题
  8. 线性插值插值_揭秘插值搜索
  9. 软件测试框架课程考试_那考试准备课程值得吗?
  10. java finally在return_Java finally语句到底是在return之前还是之后执行?