题解:符合要求的01串需满足首尾为1且0,1的个数都为偶数。括号序列的构造:前k/2个1为左括号,后k/2个1为右括号,0位置上左右括号轮换。
#includeusing namespace std; typedef long long ll; char a[200005],b[200005]; bool check(char *c) { stack s; int i=0; while(c[i]) { if(c[i]=='(')s.push(1); else { if(s.empty())return 0; s.pop(); } i++; } if(s.size())return 0; return 1; } void solve(){ int n; cin>>n; fill(a,a+n+1,0); fill(b,b+n+1,0); string t; cin>>t; int cnt=0; for(int i=0;i j)break; a[i]=b[i]='('; b[j]=a[j]=')'; i++; j--; } int op=0; for(int k=0;k T; while(T--)solve(); return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)