POJ 1068 *** Parencodings
2015-11-15 15:12
330 查看
题意:对于一组无序的括号对(()())((()))而言,P数列描述‘)’前面的‘(’的数量,W数列描述与‘)’配对的最近的‘(’是第几个。输入数列P,求数列W。
要求:P数列长度小于20。
想法:数列中第i个数,如果与第i-1个数不同,则说明‘)’前面有一个‘(’,于是W[i]=1;第i个数与第i-1个数相同,则反复比较第i个数,与前面第k个数的差值,直到该差值大于遍历过的数的数目。
代码如下:
要求:P数列长度小于20。
想法:数列中第i个数,如果与第i-1个数不同,则说明‘)’前面有一个‘(’,于是W[i]=1;第i个数与第i-1个数相同,则反复比较第i个数,与前面第k个数的差值,直到该差值大于遍历过的数的数目。
代码如下:
#pragma warning(disable:4996) #include<iostream> #include<cstdio> #include<cmath> #include<stack> #include<cstring> #include<sstream> #include<set> #include<string> #include<iterator> #include<vector> #include<map> #include<algorithm> using namespace std; int num[130]; int main() { int n,t; cin >> t; while (t--) { cin >> n; num[0] = 0; for (int i = 1; i <= n; ++i) { cin >> num[i]; if (num[i] != num[i - 1])cout<<1<<" "; else { int res = 0,j = i - 1; while ((j >= 0) && (num[i] - num[j] <= res)) { ++res; --j; } cout<<res+1<<" "; } } cout << endl; } return 0; }
相关文章推荐
- 蓝牙知识点
- UIBarButtonItem改变系统rightbutton和leftbutton的位置
- bag of words
- uva 804 Petri Net 模拟
- (PHP)正则表达式-贪婪匹配与懒惰匹配的区别
- 【JavaScript】——BOM+demo
- 概率分布函数经过基本运算函数的结果
- javascript快速入门第一章基础知识(上)
- autolayout更改约束后操作
- html中<a>标签中锚点的用法
- UI之uiNavigationCtroller and navigationBar UIappearance navigationItem
- 移动终端基带芯片基本架构
- gdb 调试openmp多线程程序 示例介绍
- 理解递归操作
- jquery获取点击事件对象
- 一个获取a标签传值的函数
- Activity生命周期
- LeetCode Product of Array Except Self 数组
- Windows7 64bit VS2013 Caffe train MNIST操作步骤
- Windows7 64bit VS2013 Caffe train MNIST操作步骤