码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1068(模拟)

时间:2018-10-10 21:55:36      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:color   括号   cto   +=   pac   string   ace   pre   col   

用1代表左括号,0代表右括号。扫一遍,扫到0的时候,往前扫,直到在这个情况下0和1的个数相等,记录。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cmath>
 4 #include <cstring>
 5 #include <algorithm>
 6 #include <queue>
 7 #include <stack>
 8 #include <vector>
 9 using namespace std;
10 int main(int argc, char *argv[])
11 {
12     int t,n,a[30],b[100],c[30];
13     scanf("%d",&t);
14     while(t--)
15     {
16         scanf("%d",&n);
17         for(int i=1;i<=n;i++)
18         {
19             scanf("%d",&a[i]);
20         }
21         int ans=0;a[0]=0;
22         for(int i=1;i<=n;i++)
23         {
24             for(int j=ans;j<ans+a[i]-a[i-1];j++)
25             {
26                 b[j]=1;
27             }
28             ans+=a[i]-a[i-1];
29             b[ans++]=0;
30         }
31         int sum=0;
32         for(int i=0;i<ans;i++)
33         {
34             if(b[i]==0)
35             {
36                 int s0,s1;s0=1;s1=0;
37                 for(int j=i-1;j>=0;j--)
38                 {
39                     if(b[j]==0)
40                     s0++;
41                     else
42                     s1++;
43                     if(s0==s1)
44                     {
45                         c[sum++]=s0;
46                         break;
47                     }
48                 }
49             }
50         }
51         for(int i=0;i<sum;i++)
52         {
53             printf("%d",c[i]);
54             if(i!=sum-1)
55             printf(" ");
56         }
57         printf("\n");
58         
59     }
60     return 0;
61 }

 

POJ 1068(模拟)

标签:color   括号   cto   +=   pac   string   ace   pre   col   

原文地址:https://www.cnblogs.com/huluxin/p/9768617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!