区间DP入门题--最大匹配的括号数
来源:互联网 发布:usb端口测试软件 编辑:程序博客网 时间:2024/05/22 17:12
Sample Input
((()))()()()([]]))[)(([][][)end //结束
Sample Output
6 //三对六个6406
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define MAX 10000int dp[MAX/10][MAX/10];//i到j位置匹配的括号数--直接求匹配的括号个数char str[MAX];bool check(char a,char b){ if(a=='(' && b==')') return true; if(a=='[' && b==']') return true; return false;}int main(){ int len,l,i,j,k; while(~scanf("%s",str)) { if(!strcmp(str,"end")) break; memset(dp,0,sizeof(dp)); len=strlen(str); for(i=0; i<len; i++) { //dp[i][i]=0; if(check(str[i],str[i+1])) dp[i][i+1]=2; } for(l=2; l<len; l++) { for(i=0; i<len-1; i++) { j=i+l; //dp[i][j]=INF; if(check(str[i],str[j])) dp[i][j]=2+dp[i+1][j-1]; for(k=i; k<j; k++) dp[i][j]=max(dp[i][j],dp[i][k]+dp[k+1][j]); } } printf("%d\n",dp[0][len-1]); } return 0;}
逆向思路,总长度-最小的不匹配个数
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define INF 0x3f3f3f3f#define MAX 10000int dp[MAX/10][MAX/10];//i到j位置不匹配的括号数char str[MAX];bool check(char a,char b){ if(a=='(' && b==')') return true; if(a=='[' && b==']') return true; return false;}int main(){ int len,l,i,j,k; while(~scanf("%s",str)) { if(!strcmp(str,"end")) break; //memset(dp,0,sizeof(dp)); for(i=0;i<len;i++) dp[i][i]=1; len=strlen(str); for(l=1;l<len;l++) { for(i=0;i<len-1;i++) { j=i+l; dp[i][j]=INF; if(check(str[i],str[j])) dp[i][j]=dp[i+1][j-1]; for(k=i;k<j;k++) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]); } } printf("%d\n",len-dp[0][len-1]); } return 0;}
0 0
- 区间DP入门题--最大匹配的括号数
- poj 2955 区间dp 最大括号匹配数
- 括号最大匹配(区间dp)
- [区间DP入门 括号匹配]Brackets POJ
- 区间dp括号匹配
- 括号匹配区间dp/数据结构题
- (POJ 2955)Brackets 区间DP 最大括号匹配
- POJ 2955 Brackets(括号最大匹配,区间DP)
- poj2955,括号匹配,区间dp
- nyoj+区间dp括号匹配
- poj2955Brackets【区间dp 括号匹配】
- 一类关于括号匹配的问题 区间dp
- POJ 1141 Brackets Sequence (区间dp 括号匹配 经典题)
- POJ 2955 括号匹配,区间DP
- POJ 2955 Brackets 括号匹配 区间DP
- poj 2955 区间dp 括号匹配
- NYOJ 括号匹配(二) 区间DP
- poj1141(括号匹配-区间dp)
- Libgdx之Skin 皮肤类
- 简单判断某个数是不是2或3的n次幂
- Docker Swarm的入门使用
- linux技巧
- 百度map开发初步及常见问题
- 区间DP入门题--最大匹配的括号数
- jenkins 集成测试工作流程
- ubuntu必备软件安装命令
- 【运动控制】三点定圆
- redis实现持久化
- 关于测试的一些随谈和学习计划
- Git SSH Key 生成步骤
- linux内核增加atheros wifi驱动
- HDU1232 畅通工程