zoukankan      html  css  js  c++  java
  • 括号画家

    水题。

     1 #include <cstdio>
     2 #include <cstring>
     3 const int N = 1000010;
     4 
     5 int stk[N], top;
     6 
     7 inline void max(int &a, int b) {
     8     if(a < b) a = b;
     9     return;
    10 }
    11 
    12 inline int dig(char c) {
    13     if(c == '(') return 1;
    14     if(c == ')') return -1;
    15     if(c == '[') return 2;
    16     if(c == ']') return -2;
    17     if(c == '{') return 3;
    18     if(c == '}') return -3;
    19     printf("ERROR!
    ");
    20     return 0;
    21 }
    22 
    23 int main() {
    24     freopen("sequence.in", "r", stdin);
    25     char s[N];
    26     int ans, ta;
    27     while(scanf("%s", s) != EOF) {
    28         ans = top = ta = 0;
    29         for(int i = 0; i < strlen(s); i++) {
    30             int p = dig(s[i]);
    31             //printf("%d
    ", p);
    32             if(p + stk[top] == 0) {
    33                 ans++;
    34                 top--;
    35             }
    36             else if(p > 0) {
    37                 stk[++top] = p;
    38                 ans++;
    39             }
    40             else {
    41                 if(top) ans -= top;
    42                 max(ta, ans);
    43                 ans = top = 0;
    44             }
    45             //printf("ans = %d
    ", ans);
    46         }
    47         if(top) {
    48             ans -= top;
    49         }
    50         max(ta, ans);
    51         printf("%d
    ", ta);
    52     }
    53     return 0;
    54 }
    伪AC代码

    括号画家
    Candela是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的Candela画了一排括号序列,其中包含小括号()、中括号[]和大括号{},总长度为N。这排随意绘制的括号序列显得杂乱无章,于是Candela定义了什么样的括号序列是美观的:
    空的括号序列是美观的;
    若括号序列A是美观的,则括号序列(A)、[A]、{A}也是美观的;
    若括号序列A、B都是美观的,则括号序列AB也是美观的;
    例如 [(){}]() 是美观的括号序列,而 )({)[}]( 则不是。
    现在Candela想在她绘制的括号序列中,找出其中连续的一段,满足这段子序列是美观的,并且长度尽量大。你能帮帮她吗?
    输入:
    第一行1个整数N,第二行1个长度为N的括号序列。
    各个测试点的N的大小:5,10,50,100,100,1000,1000,10000,10000,10000
    输出:
    一个整数,表示最长的美观的连续子序列的长度。

    试一下这两组样例:[][    [) 

  • 相关阅读:
    bzoj3295: [Cqoi2011]动态逆序对
    bzoj3262: 陌上花开
    bzoj1176: [Balkan2007]Mokia
    bzoj1935: [Shoi2007]Tree 园丁的烦恼
    [APIO / CTSC2007]数据备份 --- 贪心
    [APIO2007]风铃 --- 贪心
    [NOI2015]寿司晚宴 --- 状压DP
    [NOI2007]货币兑换 --- DP + 斜率优化(CDQ分治)
    [NOI2009]诗人小G --- DP + 决策单调性
    [HNOI2008]玩具装箱TOY --- DP + 斜率优化 / 决策单调性
  • 原文地址:https://www.cnblogs.com/huyufeifei/p/9087800.html
Copyright © 2011-2022 走看看