zoukankan      html  css  js  c++  java
  • poj 1141

    简单的dp

    忘了\n,调了半天(目测不是第一次了)

    直接贴代码:

    #include<cstdio>

    #include<cstring>

    using namespace std;

    char s[120];

    int dp[120][120]={0};

    int min(int x,int y){

             return (x>y)?y:x;

    }

    void solve(int x,int y){

             if(dp[x][y]==0){

                       for(int i=x;i<=y;i++)

                                printf("%c",s[i]);

                       return;

             }

             if(y==x){

                       if(s[x]=='(' || s[x]==')')printf("()");

                       if(s[x]=='[' || s[x]==']')printf("[]");

                       return;

             }

             if((s[x]=='(' && s[y]==')' || s[x]=='[' && s[y]==']') && dp[x][y]==dp[x+1][y-1]){

                       printf("%c",s[x]);

                       solve(x+1,y-1);

                       printf("%c",s[y]);

                       return;

             }

             for(int i=x;i<y;i++)

                       if(dp[x][y]==dp[x][i]+dp[i+1][y]){

                                solve(x,i);

                                solve(i+1,y);

                                return;

                       }

             return;

    }

    int main(){

             gets(s);

             int l=strlen(s);

             for(int i=0;i<l;i++)dp[i][i]=1;

             for(int i=1;i<l;i++)

                       for(int j=0;j<l-i;j++){

                                int a=j,b=j+i;

                                dp[a][b]=200;

                                if(s[a]=='(' && s[b]==')' || s[a]=='[' && s[b]==']')dp[a][b]=dp[a+1][b-1];

                                for(int k=a;k<b;k++)

                                         dp[a][b]=min(dp[a][b],dp[a][k]+dp[k+1][b]);

                       }

    /*     for(int i=0;i<l;i++){

                       for(int j=0;j<l;j++)

                                printf("%d ",dp[i][j]);

                       printf("\n");

             }*/

             solve(0,l-1);

             printf("\n");

             return 0;

    }

  • 相关阅读:
    CentOS6.9依赖包快速安装指南
    CentOS 6.5安装部署Zabbix 3.05指南
    Nginx最佳安装与优化
    Linux Bonding最优配置
    macOS下用命令行发邮件
    Linux iperf网络性能测试
    MTR网络诊断自动脚本实例
    nmon监控linux资源使用情况
    思科HSRP配置实例
    常用正则表达式
  • 原文地址:https://www.cnblogs.com/shanquan2/p/3165929.html
Copyright © 2011-2022 走看看