POJ-1068题
下面的代码是北京大学Online Judge网站上1068题(网址:http://poj.org/problem?id=1068)的所写的代码。
该题的难点在于实现括号匹配,我在代码中采取用-1和1分别代表左右括号,使得括号匹配时各位数相加为0,不匹配时则不为0的方法来判断是否完成括号匹配,代码列表如下:
性能:Memory:704K,Time:0MS
- #include "iostream"
- using namespace std;
- int main()
- {
- const int LEFT_PARA = -1;//左括号为-1
- const int RIGHT_PARA = 1;//右括号为1
- int nProblem;//问题个数
- int n;
- int S[40];
- int P[20];
- int W[20];
- //ifstream cin("input_data.txt",ios::in);//便于读取输入文件
- cin>>nProblem;
- while (nProblem--)
- {
- cin>>n;
- for (int i=0;i<n;i++)
- {
- cin>>P[i];
- }
- //生成S
- for (int j = 0,k=0;j<n;j++)
- {
- if (j == 0)
- {
- for (k=0;k<P[j];k++)
- {
- S[k] = LEFT_PARA;
- }
- S[k] = RIGHT_PARA;
- }else{
- int m;
- for (m = k+1;m<k+1+P[j]-P[j-1];m++)
- {
- S[m] = LEFT_PARA;
- }
- S[m] = RIGHT_PARA;
- k = m;
- }
- }
- //生成W
- for (int j=0;j<n;j++)
- {
- W[j] = 0;
- }
- for (int j = 0,k=0,m=0;j<2*n;j++)
- {
- int tempSum = 0;
- if (S[j] == RIGHT_PARA)
- {
- for (int k = j;k>=0;k--)
- {
- if (S[k] == RIGHT_PARA)
- {
- W[m] += 1;
- }
- tempSum += S[k];
- if (tempSum == 0)
- {
- cout<<W[m]<<" ";
- m++;
- break;
- }
- }
- }
- }
- cout<<endl;
- }
- return 0;
- }
POJ-1068题的更多相关文章
- 模拟 POJ 1068 Parencodings
题目地址:http://poj.org/problem?id=1068 /* 题意:给出每个右括号前的左括号总数(P序列),输出每对括号里的(包括自身)右括号总数(W序列) 模拟题:无算法,s数组把左 ...
- poj 1068 模拟
题目链接 大概题意就是告诉你有个n个小括号,每一个")"左边有多少个"("都告诉你了,然后让你求出每一对括号之间有多少对括号(包含自己本身). 思路: 我先计算 ...
- poj 1068 Parencodings 模拟题
Description Let S = s1 s2...s2n be a well-formed string of parentheses. S can be encoded in two diff ...
- poj 1068(模拟题)
Parencodings Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 23545 Accepted: 13802 De ...
- POJ 1068
http://poj.org/problem?id=1068 这道题是一道模拟的题目 题目大意呢,p代表前面的'('的个数,而w代表这个括号所包括的括号的个数: 给你p,要你求w: 解题思路: 首先, ...
- POJ 1068 Parencodings 模拟 难度:0
http://poj.org/problem?id=1068 #include<cstdio> #include <cstring> using namespace std; ...
- POJ 水题若干
POJ 3176 Cow Bowling 链接: http://poj.org/problem?id=3176 这道题可以算是dp入门吧.可以用一个二维数组从下向上来搜索从而得到最大值. 优化之后可以 ...
- poj 1068 Parencodings(栈)
题目链接:http://poj.org/problem?id=1068 思路分析:对栈的模拟,将栈中元素视为广义表,如 (((()()()))),可以看做 LS =< a1, a2..., a1 ...
- POJ 水题(刷题)进阶
转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 部分解题报告添加新内容,除了原有的"大致题意&q ...
- POJ 1068 Parencodings【水模拟--数括号】
链接: http://poj.org/problem?id=1068 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=27454#probl ...
随机推荐
- git的诞生
Git的诞生 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大是靠全世 ...
- jQuery网站顶部定时折叠广告
效果体验:http://hovertree.com/texiao/jquery/4.htm HTML文件代码: <!DOCTYPE html> <html xmlns="h ...
- AngularJS Directive 隔离 Scope 数据交互
什么是隔离 Scope AngularJS 的 directive 默认能共享父 scope 中定义的属性,例如在模版中直接使用父 scope 中的对象和属性.通常使用这种直接共享的方式可以实现一些简 ...
- 【UI插件】开发一个简单日历插件(上)
前言 最近开始整理我们的单页应用框架了,虽然可能比不上MVVM模式的开发效率,也可能没有Backbone框架模块清晰,但是好歹也是自己开发出来 而且也用于了这么多频道的东西,如果没有总结,没有整理,没 ...
- SharePoint 2013 搭建app本地开发环境
使用SharePoint App,如果要通过应用程序目录分发 SharePoint 相关应用程序,如具有完全控制权限的 SharePoint 相关应用程序(无法部署到 Office 365 网站),则 ...
- IBatis.Net项目数据库SqlServer迁移至Oracle经验
最近完成了一个(IBatis.Net+MVC)项目的数据库+代码迁移工作,可把我折腾得~~~ IBatis.Net是一个ORM框架,具体介绍可以问度娘.我之前没用ORM框架使用经验,所以这一路我不是走 ...
- jquery中CheckBox的checked状态用attr()的问题
写了一个脚本,点按钮时选中checkbox,前几次可以选中,多点几次发现checkbox并未选中,调试后发现checked状态根本没有改变,后在网上查证与attr()函数有关,后改为prop问题解决. ...
- Android高效计算——RenderScript(一)
高效计算——RenderScript RenderScript是安卓平台上很受谷歌推荐的一个高效计算平台,它能够自动把计算任务分配到各个可用的计算核心上,包括CPU,GPU以及DSP等,提供十分高效的 ...
- Eclipse 常用快捷键 For MAC
Eclipse 常用快捷键 For MAC Option + Command + X: 运行Command + O:显示大纲Command + 1:快速修复Command + D:删除当前行Comma ...
- iOS 学习 - 21 系统自带解析 XML
准备工作: new -> file -> other -> Empty ,在 Save As: 中随便起个名字后缀为 .xml 拷贝下面 <person> <stu ...