P3719 [AHOI2017初中组]rexp

时间:2019-08-21
本文章向大家介绍P3719 [AHOI2017初中组]rexp,主要包括P3719 [AHOI2017初中组]rexp使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

题目背景

以下为不影响题意的简化版题目。

题目描述

给出一个由(,),|,a组成的序列,求化简后有多少个a。

化简规则:

1、形如aa...a|aa...a|aa...a的,化简结果为“|”两边a的个数最多的一项,例如a|aa|aaa=aaa 3、先算带括号的序列,例如(a|a)|aaa=aaa

输入格式

一行一个序列

输出格式

化简后a的个数

输入输出样例

输入 #1
aa(aa)|(aa|(a|aa))aa
输出 #1
4

说明/提示

原题的样例记不得了,只能随便写个代替了。。。

序列长度不超过100000

保证序列合法且括号内和“|”左右均非空

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
using namespace std;
int findans(int ans){
    char c;
    while((c=getchar())!=EOF){
        if(c=='a'){ans++;}
        if(c=='('){ans=ans+findans(0);}
        if(c=='|'){return max(ans,findans(0));}
        if(c==')'){return ans;}
    }
    return ans;
}
int main(){
	printf("%d",findans(0));
    return 0;
}

  

原文地址:https://www.cnblogs.com/xiongchongwen/p/11391363.html