zoukankan      html  css  js  c++  java
  • hdu 1361 Parencodings

    再次鄙视一下自己的英语水平,竟然没读懂题,好吧,我要学英语~~

    这题很简单,数据给的也很小,只要简单的模拟就过了,意思是:

    由括号序列S可经P规则和W规则变形为P序列和W序列。

    p规则是:pi是第i个右括号左边的左括号的数;

    w规则是:wi是第i右括号与它匹配的左括号之间右括号的数(其中包括它本身)。

    代码:

     1 #include<stdio.h>
    2 #include<stdlib.h>
    3 #include<string.h>
    4 int p[25],s[25];
    5 char str[55];
    6 int main()
    7 {
    8 int t,n,i,j,k;
    9 scanf("%d",&t);
    10 while(t--)
    11 {
    12 scanf("%d",&n);
    13 p[0]=0;
    14 for(i=1;i<=n;i++)
    15 scanf("%d",&p[i]);
    16 for(i=1,k=0;i<=n;i++)
    17 {
    18 int m=p[i]-p[i-1];
    19 for(j=1;j<=m;j++)
    20 str[k++]='(';
    21 str[k++]=')';
    22 }
    23 int f[55];
    24 memset(f,0,sizeof(f));
    25 int m=0;int l=0;
    26 for(i=0;i<k;i++)
    27 {
    28 if(str[i]==')')
    29 {
    30 for(j=i-1;j>=0;j--)
    31 if(str[j]=='(')
    32 {
    33 if(!f[j])
    34 {
    35 f[j]=1;
    36 l++;
    37 break;
    38 }
    39 else
    40 l++;
    41 }
    42 s[m++]=l;
    43 l=0;
    44 }
    45 }
    46 for(i=0;i<m;i++)
    47 {
    48 if(i)
    49 printf(" %d",s[i]);
    50 else
    51 printf("%d",s[i]);
    52 }
    53 printf("\n");
    54 }
    55 return 0;
    56 }
  • 相关阅读:
    进程隐藏类
    MFC中一些使用的方法
    c++/vc++的一些学习方法
    随意更改桌面壁纸
    Winsock异步模型之(事件通知模型 WSAAsyncSelect)
    开发外挂的一些原理
    ios 图片
    得到cell的坐标
    取出字符串中的空格
    ios 获取当前的日期,年月日
  • 原文地址:https://www.cnblogs.com/misty1/p/2294208.html
Copyright © 2011-2022 走看看