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

poj 1068 Parencodings

时间:2017-05-19 19:28:34      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:name   space   pre   ret   href   生成   lan   for   思路   

http://poj.org/problem?id=1068

题意:

一个正常括号匹配的 串 能够用两种 数字串 表达

P数字串的生成方法是:当前 匹配括号里的右括号 左边有多少个左括号。

w数字串的生成方法是:当前 匹配的括号里 包括多少个 右括号。

现 给出P数字串 求出 W数字串

思路:

用给出的P数字串 还原出 括号匹配串。

在 还原出的括号串中 生成 W数字串。

//先把p串转换为原串,再转换为w串。

#include<cstdio> #include<string> using namespace std; int f[25]; int main() { int t,n,i,sign,p,j; string s; scanf("%d",&t); while(t--) { sign=0; s.clear(); scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&p); while(sign<p) { sign++; s+="("; } s+=")"; int q1=1,q2=1; for(j=s.length()-2;j>=0&&q2;j--) { if(s[j]==‘)‘) { q1++; q2++; } else q2--; } f[i]=q1; } for(i=0;i<n;i++) printf("%d%c",f[i],i==n-1?‘\n‘:‘ ‘); } return 0; }


 

poj 1068 Parencodings

标签:name   space   pre   ret   href   生成   lan   for   思路   

原文地址:http://www.cnblogs.com/tlnshuju/p/6879880.html

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