zoukankan      html  css  js  c++  java
  • poj 1068 Parencodings

    链接:poj 1068

    题意:

    1.p序列:当出现匹配括号对时,从该括号对的右括号開始往左数,直到最前面的左括号数,就是pi的值。

    2.w序列:当出现匹配括号对时,包括在该括号对中的全部右括号数(包括该括号对,就是wi的值。


    思路:通过pi的值,能够构造出原括号序列。然后再计算wi值,计算wi时,每次匹配了的括号记得标记,

          能够用l表示已匹配的左括号,用r表示匹配了的右括号

    #include<stdio.h>
    int main()
    {
        int p[25],i,j,k,n,a,T,t;
        char s[50];
        scanf("%d",&T);
        while(T--){
            scanf("%d",&n);
            for(i=1;i<=n;i++)
                scanf("%d",&p[i]);
            for(k=1;k<=p[1];k++)
                s[k]='(';
            s[k++]=')';
            for(i=2;i<=n;i++){
                j=0;
                while(j!=p[i]-p[i-1]){
                    s[k++]='(';
                    j++;
                }
                s[k++]=')';
            }
            j=a=1;
            for(i=p[1]+1;i<k;i++){
                if(s[i]==')'){
                    s[i]='r';
                    for(t=i-1;t>=1;t--){
                        if(s[t]==')'||s[t]=='r')
                            a++;
                        else if(s[t]=='('){
                            s[t]='l';
                            break;
                        }
                    }
                    if(j!=n)
                        printf("%d ",a);
                    else
                        printf("%d
    ",a);
                    a=1;
                    j++;
                }
            }
        }
        return 0;
    }


  • 相关阅读:
    Swift和OC混编
    Swift逃逸闭包之见解
    百度地图集成
    hitTest和pointInside和CGRectContainsPoint
    Bitcode问题
    ReactiveCocoa常用方法
    iOS之图文混排
    tableview cell添加3D动画
    ReactiveCocoa总结
    Math类常用方法(Java)
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5389942.html
Copyright © 2011-2022 走看看