首页 > 其他 > 详细

区间动态规划-括号匹配(SOJ 1069)

时间:2019-03-21 14:18:31      阅读:192      评论:0      收藏:0      [点我收藏+]

SOJ 1069: Brackets

题意:

分析:

代码:

技术分享图片
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
char s[102];
int dp[102][102];
int main()
{
    int i, j, k;
    int len;
    int delta;
    while (~scanf("%s", s+1) && s[1]!=e)
    {
        memset(dp, 0, sizeof(dp));
        len = strlen(s+1);
        for (delta = 2; delta <= len; delta++)
        {
            for (i = 1; i <= len+1-delta; i++)
            {
                j = i + delta - 1;
                if ((s[i] == ( && s[j] == )) || (s[i] == [ && s[j] == ]))
                    dp[i][j] = dp[i + 1][j - 1] + 2;
                for (k = i;k<j; k++)
                    dp[i][j] = max(dp[i][j], dp[i][k] + dp[k + 1][j]);
            }
        }
        printf("%d\n", dp[1][len]);
    }
    return 0;
}
View Code

区间动态规划-括号匹配(SOJ 1069)

原文:https://www.cnblogs.com/ClearMoonlight/p/10571300.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!