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 }
复制代码

 

posted @   Misty_1  阅读(199)  评论(0编辑  收藏  举报
编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
点击右上角即可分享
微信分享提示