poj 1068 Parencodings

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 1068 Parencodings相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

POJ 1068 Parencodings

POJ-1068 Parencodings

POJ 1068 Parencodings

POJ 1068 -- Parencodings

[ACM] POJ 1068 Parencodings(模拟)

poj 1068 Parencodings