dp[i][j]代表i->j区间内最多的合法括号数

if(s[i]=='('&&s[j]==')'||s[i]=='['&&s[j]==']')
dp[i][j]=dp[i+1][j-1]+2;
dp[i][j]=max{dp[i][k]+dp[k+1][j]};

注意要对于区间的最值合并

ac代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std; int check(char a,char b)
{
if(a=='('&&b==')')
return 1;
if(a=='['&&b==']')
return 1; return 0;
} int main()
{
char str[111];
int dp[111][111],i,j,k,len;
while(scanf("%s",str)!=EOF)
{
if(!strcmp(str,"end"))
break;
len=strlen(str);
memset(dp,00,sizeof(dp));
for(k=1;i<len;k++) ////表示区间长度,从0-len更新 {
for(i=0,j=k;j<len;i++,j++)
{
if(check(str[i],str[j]))
dp[i][j]=dp[i+1][j-1]+2;
for(int x=i;x<j;x++) // //区间最值合并 {
dp[i][j]=max(dp[i][j],dp[i][x]+dp[x][j]);
}
}
}
printf("%d\n",dp[0][len-1]);
}
return 0;
}

POJ 2955 Brackets 区间DP 入门的更多相关文章

  1. HOJ 1936&POJ 2955 Brackets(区间DP)

    Brackets My Tags (Edit) Source : Stanford ACM Programming Contest 2004 Time limit : 1 sec Memory lim ...

  2. poj 2955 Brackets (区间dp基础题)

    We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a ...

  3. poj 2955"Brackets"(区间DP)

    传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 给你一个只由 '(' , ')' , '[' , ']' 组成的字符串s[ ], ...

  4. poj 2955 Brackets (区间dp 括号匹配)

    Description We give the following inductive definition of a “regular brackets” sequence: the empty s ...

  5. POJ 2955 Brackets(区间DP)

    题目链接 #include <iostream> #include <cstdio> #include <cstring> #include <vector& ...

  6. POJ 2955 Brackets 区间DP 最大括号匹配

    http://blog.csdn.net/libin56842/article/details/9673239 http://www.cnblogs.com/ACMan/archive/2012/08 ...

  7. POJ 2995 Brackets 区间DP

    POJ 2995 Brackets 区间DP 题意 大意:给你一个字符串,询问这个字符串满足要求的有多少,()和[]都是一个匹配.需要注意的是这里的匹配规则. 解题思路 区间DP,开始自己没想到是区间 ...

  8. A - Brackets POJ - 2955 (区间DP模板题)

    题目链接:https://cn.vjudge.net/contest/276243#problem/A 题目大意:给你一个字符串,让你求出字符串的最长匹配子串. 具体思路:三个for循环暴力,对于一个 ...

  9. POJ 2955 Brackets 区间合并

    输出一个串里面能匹配的括号数 状态转移方程: if(s[i]=='('&&s[j]==')'||s[i]=='['&&s[j]==']')             dp ...

随机推荐

  1. c++复习——一个小疑问

    C++中,子类为什么不能访问基类的private数据?     emmm  来自一个vegetable dog的疑问:   首先基类可以通过调用自身public成员函数来访问private 而子类又可 ...

  2. 论文阅读:FlowBlaze: Stateful Packet Processing in Hardware

    摘要: 尽管可编程NIC可以提供更好的可扩展性以处理不断增长的网络工作量,但为硬件中的有状态网络功能编程提供表达能力却又简单的抽象仍然是一项研究挑战. 我们使用FlowBlaze解决了这个问题,Flo ...

  3. 大哥带的XSS练习

    0x01反射型 <script>alert("zhong")</script> 可以看见什么都没有过滤 0x02存储型XSS http://www.xss_ ...

  4. akka 的集群访问方式

    akka  中采用startProxy分区代理 访问 ,跟使用shardRegion 来访问的区别 这两种访问方式是不是重了呢. 而另外这是一个单例代理 private fun startUniver ...

  5. C++入门经典-例6.3-字符串之未使用字符串结束符“\0”和使用字符串结束符“\0”的区别

    1:为字符串数组赋值的方式有两种,即数组元素逐一赋值和使用聚合方式赋值. 为数组元素逐一赋值.例如: pWord[0]='H'; 使用聚合方式赋值如: char pWord[]={'H','E','L ...

  6. jQuery Validate 验证成功时的提示信息

    大多数时候我们使用validate进行前台验证的时候,都是验证错误的时候给出提示信息,最近在做一个项目的时候,想这验证成功后给出一个验证成功的提示.于是在网上找了一些资料. <!doctype ...

  7. ES6 变量的结构赋值

    1.数组的解构赋值 a.基本用法:(‘模糊匹配’) let [a, b, c] = [1, 2, 3]; a b c b.嵌套数组结构例子: let [x, , y] = [1, 2, 3]; x y ...

  8. MongoDB与mysql的对比

    1.与Mql对照 MySQL MongoDB 说明 mysqld mongod 服务器守护进程 mysql mongo 客户端工具 mysqldump mongodump 逻辑备份工具 mysql m ...

  9. T84341 Jelly的难题1

    T84341 Jelly的难题1 题解 当窝发现窝的锅在读入这个矩阵的时候,窝..窝..窝.. 果然,一遇到和字符串有关的题就开始吹空调 好啦我们说说思路吧 BFS队列实现 拿出一个没有走过的点,扩展 ...

  10. golang 使用reflect反射结构体

    "反射结构体"是指在程序执行时,遍历结构体中的字段以及方法. 1.反射结构体 下面使用一个简单的例子说明如何反射结构体. 定义一个结构体,包括3个字段,以及一个方法. 通过refl ...