zoukankan      html  css  js  c++  java
  • Bracket Sequences Concatenation Problem CodeForces

    明确一下  一个字符串有x左括号不匹配  和 另一个字符串有x个右括号不匹配  这俩是一定能够匹配的

    脑子有点迷 emm。。。

    所以统计就好了  统计x个左括号的有几个,x个右括号的有几个 然后 乘一下

    如果一个串 同时存在左右括号都不匹配的情况 则忽略 因为这个串需要另外两个括号去匹配

    不要忘了处理左右括号已经匹配的情况

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 1e6+5, INF = 0x7fffffff;
    typedef long long LL;
    LL a[maxn], b[maxn];
    string str;
    int main()
    {
        int n;
        cin>> n;
        int lef, rig, maxx = -INF;
        for(int i=0; i<n; i++)
        {
            cin>> str;
            int len = str.size();
            maxx = max(len, maxx);
            lef = INF;
            rig = 0;
            for(int j=0; j<len; j++)
            {
                if(str[j] == '(')
                    rig++;
                else
                    rig--;
                lef = min(lef, rig);
            }
            if(lef < 0 && rig > lef)    //说明两边同时存在不匹配的左右括号
                continue;
            if(lef < 0)                 //有多的不匹配的左括号
                b[abs(lef)]++;
            else                        //有多的不匹配的右括号
                a[rig]++;
        }
        LL res = 0;
        for(int i=1; i<=maxx; i++)
            res += a[i] * b[i];
        res += a[0] * a[0];
        cout<< res <<endl;
    
    
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    学习进度7
    《机器学习十讲》学习报告六
    《机器学习十讲》学习报告五
    《机器学习十讲》学习报告四
    《机器学习十讲》学习报告三
    华为机试题 仿苹果
    C++ STL 六大组件的交互关系
    C++ STL 源码 阅读
    抽象类和接口的区别
    重载 & 重写 在java 中
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9542807.html
Copyright © 2011-2022 走看看