zoukankan      html  css  js  c++  java
  • 一本通1572括号配对

    1572:括号配对

    时间限制: 1000 ms         内存限制: 524288 KB

    题目描述

    Hecy 又接了个新任务:BE 处理。BE 中有一类被称为 GBE。

    以下是 GBE 的定义:

    1. 空表达式是 GBE
    2. 如果表达式 A 是 GBE,则 [A] 与 (A) 都是 GBE
    3. 如果 A 与 B 都是 GBE,那么 AB 是 GBE

    下面给出一个 BE,求至少添加多少字符能使这个 BE 成为 GBE。

    输入格式

    输入仅一行,为字符串 BE。

    输出格式

    输出仅一个整数,表示增加的最少字符数。

    样例

    样例输入

    [])

    样例输出

    1

    数据范围与提示

    对于 100% 的数据,输入的字符串长度小于 100

    sol:开始的时候头脑发热以为O(n)扫一遍就没了,发现只要 ”([)]“ 这样的数据就跪了,于是老老实实写n^3dp

    #include <bits/stdc++.h>
    using namespace std;
    const int N=105;
    char S[N];
    int n,dp[N][N];
    int main()
    {
    //    freopen("kh1.in","r",stdin);
        int i,j,k;
        scanf("%s",S+1);
        n=strlen(S+1);
        for(i=2;i<=n;i++)
        {
            for(j=1;j+i-1<=n;j++)
            {
                int l=j,r=j+i-1;
                if((S[l]=='('&&S[r]==')')||(S[l]=='['&&S[r]==']')) dp[l][r]=max(dp[l][r],dp[l+1][r-1]+2);
                for(k=l;k<r;k++) dp[l][r]=max(dp[l][r],dp[l][k]+dp[k+1][r]);
            }
        }
        printf("%d
    ",n-dp[1][n]);
        return 0;
    }
    /*
    input
    [])
    output
    1
    
    input
    ][][(())((([])))
    output
    2
    */
    View Code
  • 相关阅读:
    设计模式之工厂模式
    面向对象的五大原则
    抽象类和接口、类库
    静态
    面向对象三大特性
    JVM(Java虚拟机)优化大全和案例实战
    Java调用Lua脚本(LuaJava使用、安装及Linux安装编译)
    Java调用.dll文件
    linux yum命令详解
    linux nohup命令
  • 原文地址:https://www.cnblogs.com/gaojunonly1/p/10354786.html
Copyright © 2011-2022 走看看