POJ 2955 Brackets 区间DP 入门
来源:互联网 发布:java springmvc 分页 编辑:程序博客网 时间:2024/05/21 15:45
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;}
0 0
- POJ 2955 Brackets 区间DP 入门题
- poj 2955 Brackets 【区间dp 入门】
- POJ 2955 Brackets 区间DP 入门
- POJ 2955 Brackets 区间dp入门题
- POJ 2955 Brackets (区间DP入门)
- poj 2955 Brackets(区间DP)
- poj 2955 Brackets 【区间DP】
- POJ 2955 Brackets(区间DP)
- poj-2955 Brackets 区间dp
- POJ 2955 Brackets (区间dp)
- POJ 2955 Brackets 区间DP
- poj 2955 Brackets(区间dp)
- POJ 2955 - Brackets(区间DP)
- poj 2955 Brackets 区间dp
- poj 2955 Brackets(区间DP)
- poj 2955 Brackets【区间DP】
- poj 2955 Brackets(区间dp)
- poj 2955 Brackets 区间DP
- [GDKOI2016]不稳定的传送门
- Search a 2D Matrix
- 详解MapReduce过程
- 集合无序性的体验
- 二叉树的递归遍历(dp)
- POJ 2955 Brackets 区间DP 入门
- git比较远程和本地
- spring动态数据源配置以及以及利用AOP自动设置
- Python list reverse
- Source insight 3.5的安装与卸载
- Spring 源码深度解析-Spring源码导入
- nodejs String
- [GDKOI2016]寻宝
- Vi(Vim)快捷键