POJ 2955Brackets(区间DP)
来源:互联网 发布:windows平板电脑论坛 编辑:程序博客网 时间:2024/05/16 15:37
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=77874#problem/C
代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;char a[105];int dp[105][105];int judge(int i,int j){ if(a[i]=='('&&a[j]==')') return 1; if(a[i]=='['&&a[j]==']') return 1; return 0;}int main(){ while(~scanf("%s",a)) { if(a[0]=='e') break; int str=strlen(a); for(int i=str-1;i>=0;i--) //从后往前找 { for(int j=i+1;j<=str;j++) { dp[i][j]=dp[i+1][j]; for(int k=i+1;k<=j;k++) { if(judge(i,k)) { dp[i][j]=max(dp[i][j],dp[i+1][k-1]+dp[k+1][j]+2); } } } } printf("%d\n",dp[0][str-1]); }}
dp[i][j] = max(dp[i +1][j], dp[i + 1][k - 1] + dp[k +1][j] + 2)
区间DP,如果顺序不对,可能导致的是,
f[i,j]要根据f[i,k]推,而f[i,k]还没有求出来。
0 0
- Brackets(poj-2955)(区间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 2955Brackets(区间DP)
- POJ 2955Brackets(区间DP)
- poj 2955 Brackets (区间DP)
- 【POJ 2955】Brackets(区间DP)
- POJ 2955Brackets(区间dp)
- POJ 2955 Brackets (区间DP)
- PAT 1003
- Android消息机制字典型探究(二)
- 2016/5/21 1005. 设置输出的flag
- 关于qsort的使用
- Linux 文本编辑工具vim
- POJ 2955Brackets(区间DP)
- Unity摄像机 向指定位置移动旋转 C#脚本
- 2016"百度之星" - 初赛(Astar Round2A)1003(hdu5692)dfs序+线段树
- Activity生命周期中我们可以做些什么?
- sdut 3256 BIGZHUGOD and His Friends II
- 2016.5.2模拟赛总结
- HDU 5336 XYZ and Drops
- ElasticSearch备份快照到HDFS-2.6(CDH5.6.0)
- (二)洞悉linux下的Netfilter&iptables:内核中的ip_tables小觑