北大poj Q2_Parencodings
来源:互联网 发布:mysql5.7 for mac 编辑:程序博客网 时间:2024/05/21 04:42
北大poj比百炼的poj难一些
这道题用时也比较长,欣慰的是没有百度,没有谷歌,自己想出来的,用时大概3h;
刚开始不知道该怎么办,自己在本子上画画,不断的编程修改,终于找到了问题的突破口
代码写的不够精简,但是还算正确
算法的重要思想是:
始终左右括号为1对,其余的在程序中有标明
#include <stdio.h>#include <stdlib.h>int main(){ int t,n;//t为共有几轮,n为每轮有多少个数字 scanf("%d",&t); int i,j; int s,k; int w[200]={0}; int wn=0;//wn为全局变量 int tnum=0; //tnum为总共有几组测试 for(tnum=0;tnum<t;tnum++) { scanf("%d",&n); //输入p[i]右括号出现时对应左括号的个数 int *p=(int *)malloc(n*sizeof(int)); for(i=0;i<n;i++) scanf("%d",&p[i]); //将左括号作为0,右括号作为1,还原0101代码 int *a=(int *)malloc((p[n-1]+n)*sizeof(int)); for(j=0;j<p[0];j++)//第一个做特殊处理, a[j]=0; a[j]=1; s=j+1; //后一个p数组中的数减去前一个,即为要插入的左括号的数字,即为0; for(i=1;i<n;i++) { k=p[i]-p[i-1]; while(k!=0) { a[s]=0; s++; k--; } a[s]=1; s++; } //计算w数组的值; /*思想:统计例如000010101111序列,统计1前面的数字为几,if为0,则直接w对应的数组值为1 else:用x来标记出现的1的个数,出现一个1,进行一次x=x+1操作;出现一个0,执行一次x=x-1操作 当x的值为0的时候,处理完毕,统计总共执行了多少次的减一操作,即为数组w(wn)的值 这种思路依赖于左右括号总是成对出现的,即1和0总是成对出现的*/ for(i=1;i<(p[n-1]+n);i++) { int m; m=i; if(a[m]==1) { int x=0; x+=1; if(a[m-1]==0) { w[wn]=1; wn+=1; } else{ int num=0; for(j=m-1;j>=0;j--) { if(a[j]==0) {x-=1; num+=1; if(x==0) { w[wn]=num; wn+=1; break; } } else if(a[j]==1) x+=1; } } } } w[wn]=0; wn+=1; } //将循环tn次计算的结果依次放入pp数组中,打印出来 for(i=0;i<wn-1;i++) { if(w[i]==0) printf("\n"); else printf("%d ",w[i]); } return 0;}
提交Accepted后我百度了一下,想看看别人都是怎么做的,大部分人用c++编的,还有提到用栈的,我打算今天学习一下栈 这种数据结构,看看它的优缺点,希望在我以后的编程练习中,能简化工作量;
- 北大poj Q2_Parencodings
- 北大ACM poj 1001
- 北大ACM poj 1050
- 北大ACM poj 3991
- 北大ACM poj 2498
- 北大poj Q1_Bode Plot
- 北大poj题目分类
- 北大POJ 2080 Calender
- 北大POJ题库使用指南
- 北大 POJ 1002
- 北大POJ题库使用指南
- 北大POJ题库使用指南
- 北大ACM poj 1011
- 北大ACM poj从零开始
- POJ --北大ACM题分类
- 北大 poj 2243 Knight moves
- 北大 poj 1611 The Suspects
- poj 1007 北大ACM java
- Android应用签名
- shell编程基础(2.2 SHELL编程语法)
- Android自定义控件的属性
- C#开发和调用Web Service
- S5pc100 的linux-lcd驱动学习的总结分析
- 北大poj Q2_Parencodings
- (转)RemoteViews概述
- UISearchBar 背景图-举一反三
- Maven 添加架包 和一下常用的maven仓库网址
- 【转】给Java初学者的建议
- Java Dom XML
- 使用函数CS_BOM_EXPL_MAT_V2展开状态未激活的BOM
- 《Rework》摘录及感想
- VS中的搜索技巧