//poj1068 P序列代表每个右括号左边的左括号的数量 W序列代表
//通过poj3295,我觉得还是得用栈 + 递归的思路解题
#include
#include
using namespace std;
int stack[1005];
int top = 0;
bool mark[1005];
void deal(int i, int j)
{if(j > i)return;int anss = 1;for(int k = j; k <= i; k++){if(stack[k]){for(int k1 = k - 1; k1 >= 0; k1--){if(!stack[k1] && mark[k1]){anss++;}else if(!stack[k1] && !mark[k1]){mark[k1] = true;if(k == i)cout<>t;while(t--){memset(stack, 0, sizeof(stack));top = 0;memset(mark, 0, sizeof(mark));int n;cin>>n;int a, b;cin>>a;for(int i = 0; i < a; i++)stack[top++] = 0;stack[top++] = 1;for(int i = 1; i < n; i++){cin>>b;for(int i = a; i < b; i++){stack[top++] = 0;}stack[top++] = 1;a = b;}//0 左括号 1 右括号 deal(top - 1, 0); }return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!