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;
}

最新文章

  1. 基于Autofac, Castle.DynamicProxy的动态WCF解决方案(原创)
  2. T4模版基础例子
  3. Python3 windows如何安装模块 setuptools
  4. 修改myeclipse的servlet模板
  5. Exercise: Rot13 Reader
  6. libpng causes error concerning pngconf.h
  7. Manager(管理器)
  8. osprofiler在openstack Cinder里的使用
  9. CoreCLR源码探索(六) NullReferenceException是如何发生的
  10. [HNOI 2009]最小圈
  11. Docker学习笔记2: Docker 概述
  12. 小程序组件中有bindinput监听报异常
  13. babel (二) update to v7
  14. Beautiful Soup 学习手册
  15. 利用mycat实现基于mysql5.5主从复制的读写分离
  16. Django 模版过滤器
  17. 【WEB前端系列之CSS】CSS3动画之Tranition
  18. django和flask的区别
  19. python之函数用法__getitem__()
  20. 访问IO设备

热门文章

  1. C语言 - strcat和strncat的编程实现及总结
  2. NOI 2019 AFO 记
  3. Cqoi2017试题泛做
  4. 分布式-网络通信-IO-基础(1)
  5. 我的 CSDN 博客目录索引(主要记录了我学习视频、书籍的笔记,持续更新中)
  6. 套接字之recv系统调用
  7. Uploading multiple files asynchronously by blueimp jquery-fileupload
  8. celery 启动命令
  9. Electron对JQuery的支持问题
  10. 浏览器端-W3School-HTML:HTML DOM Table 对象