【AHKOI2017】rexp

题面

https://www.luogu.org/problem/P3719

题解

煽情:那年我八年级,是我第一次省选省一。
那时候也许是我初中第二好的时候吧,八年级下期中,第一次进前$200$($117$名),当上全班第一(清楚的记得那一次$yc$大佬是全校第一),也是第一张省选省一,第一张$CCPC$一等奖($45$中唯一的蓝色闪电队),算上我上学期拿的$pj$省一,就是三张省一了,或许现在看来不算什么,但是那的确是我开始尝到$oi$和学习的甜头,那的确是我的初心。还记得,当年$dhd$教,我的物理还没有那么差,期末考了$100$分,然后发到$QQ$空间$fake$,期末考体育时考的立定跳远,虽然最后没考几分,暑假在四中的操场上和$lxm$还有$cyq$鬼混,然后和齐老师上着一对一的语文课,最期盼的还是到北方(四里河再往北,西边,靠近南国花园)的贲老师家上数学,因为我超级喜欢那里,恬静而美好,也是我后来喜欢的$wym$家住的地方当时好像对$lyy$比较有好感,现在想想应该算不上喜欢吧。
当然第一好的时候肯定是属于$wym$的初三上学期后半段,那个时候真是心无杂念的疯狂学习,最后在学校的考试考了$57$名,如果不算体育,那就是$20$多名了,在及第考了全市$18$名,$45$中第$7$,在我前面的有$gyf$,$why$,$gy$,$sr$,$zlt$,$xjk$,现在他们都上了一中竞赛班和小$168$诺班,正是那个时候的坚持,才让我这个普通班的弱者有底气和这些重点班的人拼一把,所以我要感谢她呢。可惜我最后失败了。我是个失败者。

我记得我当时最成功的好像是把第二题的二分答案写出来了。然后得了$75pts$,压线拿了省一,同队的$lyh$妈妈还夸我巨呢。可是现在他也不在了。。。。

我当时知道这道题是栈,但是还是不敢写,好像没得多少分。

省选之前重新写了一下,写和调试用了$40$分钟,应该还是我对单调栈不太熟练吧(还有单调队列)

#include<cstdio>
#include<iostream>
#include<cstring>
#define N 100050
#define ri register int
using namespace std;
int y0[N],n;
char s[N],s0[N];
// ( 0
// | 1
// ) 2

int main(){
  scanf("%s",s+1);
  s[0]='(';
  n=strlen(s+1);
  s[n+1]=')';

  int yy=0,ss=0;
  for (ri i=0;i<=n+1;i++) {
    if (s[i]=='(') {
      yy++;
      s0[++ss]='(';
    }
    else if (s[i]=='a') {
      y0[yy]++;
    }
    else if (s[i]=='|') {
      yy++;
      s0[++ss]='|';
    }
    else if (s[i]==')') {
      while (s0[ss]!='(') {
        yy--; ss--;
        y0[yy]=max(y0[yy],y0[yy+1]);
        y0[yy+1]=0;
      }
      yy--; ss--;
      y0[yy]=y0[yy]+y0[yy+1]; y0[yy+1]=0;
    }
  }
  cout<<y0[0]<<endl;
}

猜你喜欢

转载自www.cnblogs.com/shxnb666/p/11427098.html