zoukankan      html  css  js  c++  java
  • POJ 1068

    寒假集训小水题第一发

    题意:给你一个序列,代表的意思是第i个右括号前面有Si个左括号,问题是求第i 个右括号包含了几个完整的括号 。

    example:

    S		(((()()())))
    
    P-sequence 4 5 6666
    W-sequence 1 1 1456

    方法:先用给出的P序列把S还原出来,然后再用S求W,W的具体求解方法是从每个右括号往左找,直到左括号数目和右括号数目一致的时候,就是包含的括号数。

    AC代码:
    #include <iostream>
    #include <math.h>
    #include <stdio.h>
    #include <string.h>
    #include <queue>
    using namespace std;
    int main()
    {
        int T,n,s[200],su[200];
        char q[200];
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            for(int i=0; i<n; i++)
            {
                scanf("%d",&s[i]);
            }
            int k=0;
            for(int i=0; i<s[0]; i++)
            {
                q[k++]='(';
            }
            q[k++]=')';
            for(int i=1; i<n; i++)
            {
                int k1=s[i]-s[i-1];
                while(k1--)
                {
                    q[k++]='(';
                }
                q[k++]=')';
            }
            int suk=0;
            for(int i=0; i<k; i++)
            {
                if(q[i]==')')
                {
                    int sum1=1;
                    int sum2=0;
                    for(int j=i-1; j>=0; j--)
                    {
                        if(sum1==sum2)
                        {
                            break;
                        }
                        if(q[j]==')')
                        {
                            sum1++;
                        }
                        else if(q[j]=='(')
                        {
                            sum2++;
                        }
                    }
                    su[suk++]=sum1;
                }
            }
            for(int i=0;i<suk;i++)
            {
                printf("%d",su[i]);
                if(i!=suk-1)
                {
                    printf(" ");
                }
                else
                {
                    printf("
    ");
                }
            }
        }
        return 0;
    }

     

  • 相关阅读:
    ansible-handlers
    LNMP
    编译安装sshpass
    cadence-irun(xrun) 增量编译
    sva 基础语法
    bsub && lsf 介绍
    Perl 输出内容到 excel
    Perl sendmail
    dlopen与dlsym用法
    perl在linux下通过date获取当前时间
  • 原文地址:https://www.cnblogs.com/qioalu/p/5147585.html
Copyright © 2011-2022 走看看