zoukankan      html  css  js  c++  java
  • POJ2955 Brakets(区间dp)

    我们知道一个的是0,因此先初始化两个长度的时候

    之后运用区间dp的思想,如果s[l]和s[r]满足是一对,那么先由内部更新

    之后我们枚举断点,计算相加的情况

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    #include<cmath>
    #include<vector>
    #include<string>
    #include<cstring>
    #include<map>
    #include<set>
    using namespace std;
    typedef long long ll;
    const int N=1e5+10;
    const int inf=0x3f3f3f3f;
    int f[110][110];
    int main(){
        string s;
        while(cin>>s){
            if(s=="end")
            break;
            int i,j;
            s=" "+s;
            memset(f,0,sizeof f);
            int len,l,r;
            for(i=1;i<=s.size()-1;i++){
                if(s[i]=='('&&s[i+1]==')'||(s[i]=='['&&s[i+1]==']'))
                f[i][i+1]=2;
            }
            for(len=3;len<=s.size();len++){
                for(l=1;l+len-1<=s.size();l++){
                    r=l+len-1;
                    if(s[l]=='('&&s[r]==')'||(s[l]=='['&&s[r]==']')){
                        f[l][r]=max(f[l][r],f[l+1][r-1]+2);
                    }
                    for(int k=l;k<r;k++){
                        f[l][r]=max(f[l][r],f[l][k]+f[k+1][r]);
                    }
                    
                }
            }
            cout<<f[1][s.size()]<<endl; 
        }
    }
    View Code
  • 相关阅读:
    内层城循环应用——买衣服
    内外层循环用法
    自定义函数的应用
    少有人走的路 随笔
    拆单发货逻辑
    拆单发货-分布页
    拆单发货-主页
    SP--report存储过程
    关于C#对Xml数据解析
    C#模拟http 发送post或get请求
  • 原文地址:https://www.cnblogs.com/ctyakwf/p/12326562.html
Copyright © 2011-2022 走看看