pku 1068 Parencodings(模拟)

据说可以推出规律,得到O(n)的方法。

不过我就懒得去推了,当成模拟题写的。

#include <iostream> using namespace std; char parentheses[41]; int main() { int t,n; int last,now; scanf("%d",&t); while(t--) { scanf("%d",&n); last=0; int k=0; for(int i=0;i<n;i++) { scanf("%d",&now); for(int j=0;j<now-last;j++) { parentheses[k+j]='('; } parentheses[k+now-last]=')'; k+=now-last+1; last=now; } for(int i=1;i<2*n;i++) { if(parentheses[i]==')') { int a=0,b=1; for(int j=i-1;;j--) { if(parentheses[j]=='(') a++; else b++; if(a==b) { printf("%d ",a); break; } } } } printf("/n"); } return 0; } 

你可能感兴趣的:(ini)