POJ2955 Brackets(区间DP)
2015-05-23 23:23
274 查看
题目大意:
给定序列,求符合条件子序列的最大长度
经典区间DP,状态dp[i][j]表示i到j区间的最大长度
状态转移dp[i][j]=max(dp[i][j],dp[i][k-1]+dp[k+1][j-1]+1) (i<=k<j)
给定序列,求符合条件子序列的最大长度
经典区间DP,状态dp[i][j]表示i到j区间的最大长度
状态转移dp[i][j]=max(dp[i][j],dp[i][k-1]+dp[k+1][j-1]+1) (i<=k<j)
#include <stdio.h> #include <string.h> int dp[105][105]; char s[105]; int max(int a,int b) { return a>b?a:b; } int main() { int i,j,k,len,ans; while(gets(s)&&strcmp(s,"end")!=0) { ans=0; len=strlen(s); for(j=1;j<len;j++) for(i=0;i<j;i++) { dp[i][j]=dp[i][j-1]; for(k=i;k<j;k++) if(s[k]=='['&&s[j]==']'||s[k]=='('&&s[j]==')') dp[i][j]=max(dp[i][j],dp[i][k-1]+dp[k+1][j-1]+1); ans=max(ans,dp[i][j]); } printf("%d\n",ans*2); } return 0; }
相关文章推荐
- POJ 2955 Brackets(区间DP, 记忆化搜索)
- poj 2955 Brackets(区间DP)
- POJ 2955-Brackets(区间DP)
- [区间dp] poj 2955 Brackets
- 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 括号匹配)