• poj 1068


       此题多组处理数据,每组输入n个数,每个a[i]代表当前对应的右括号前面共有多少个左括号。
    比如:n=6, 4 5 6 6 6 6 。 对应第一个右括号前有4个左括号,第二个右括号前有5个左括号,不过千万不要落下第一个右括号啊,以此类推下去。。。。。。
    现在要求输出另一个数组,数组元素为当前右括号包含的括号总数!
    比如:(()())
    第一个右括号只包含自己,故为 1;
    第二个右括号也只包含自己, 故为 1;
    第三个右括号包含前面两个括号,再加上自己,故为 3.
    所以应输出:1 1 3 ;
    直接用序列推出括号序列,再计算w序列。(大暴力)
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int a[100000],ans[100000];
    char kuo[100000];
    int main()
    {
        //freopen("t2.in","r",stdin);
        //freopen("t2.out","w",stdout);
        int n,i,j;
        scanf("%d",&n);
        while(n--)
        {
            int m,v=0;
            scanf("%d",&m);
            memset(a,0,sizeof(a));
            memset(ans,0,sizeof(ans));
            memset(kuo,0,sizeof(kuo));
            for(i=1;i<=m;i++)
            {
                scanf("%d",&a[i]);
                int s=a[i]-a[i-1];
                int k;
                for(k=1;k<=s;k++)
                {
                    kuo[v+k]='(';
                }
                v+=s;
                v++;
                kuo[v]=')';
            }
            int h=1;
            for(i=1;i<=v;i++)
            {
                if(kuo[i]==')')
                {
                    int ans1=0,y=1;
                    for(j=i-1;j>=1;j--)
                    {
                        if(kuo[j]==')')
                        {
                            y++;
                        }
                        if(y>0&&kuo[j]=='(')
                        {
                            y--;
                            ans1++;
                        }
                        if(y==0)
                        {
                            break;
                        }
                    }
                    ans[h]=ans1;
                    h++;
                }
            }
            printf("%d",ans[1]);
            for(i=2;i<=m;i++)
            {
                printf(" %d",ans[i]);
            }
            printf("
    ");
        }
        //system("pause");
        return  0;
    }
    

      

    蒟蒻总是更懂你✿✿ヽ(°▽°)ノ✿
  • 相关阅读:
    SQL 中文排序方式
    ASP.NET公有六种验证控件
    CustomValidator的使用方法
    c# 获取网页源码
    asp.net mvc 从客户端中检测到有潜在危险的 Request.Form 值的解决方法
    C#上传文件转字节流形式
    byte数组转换成文件保存到本地
    检测到有潜在危险的Request.Form值
    字节数组生成图片
    Edit Distance (编辑距离) .NET 实现
  • 原文地址:https://www.cnblogs.com/WWHHTT/p/6964524.html
Copyright © 2020-2023  润新知