首页 > 其他分享 >D. Invertible Bracket Sequences

D. Invertible Bracket Sequences

时间:2024-06-20 17:54:51浏览次数:9  
标签:pre Invertible int sum ans Bracket 端点 Sequences

原题链接

题解

把(当作+1,)当作-1,我们可以得到这样的图像

易得要保证翻完之后整体的合法性,\([l,r]\) 内的左右括号数量要相等,在图上看就是 \(pre[l-1]==pre[r]\) 相等

一个合法括号,要保证所有的 \(pre[i]\) 不小于0,因此反过来之后,最小的 \(pre[i]\) 等于 \(pre[r]-\max(pre[k]),k\in(l,r)\)

做法之一:维护每个点为右端点的合法左端点数,并以当前点位最高点更新合法左端点 ,我们用map来记录,这样就保证了每个点作为左端点只会被遍历到一次

code

#include <bits/stdc++.h>
using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        string s;
        cin >> s;
        s = ' ' + s;

        int sum = 0;
        map<int, int> q;
        q[0] = 1;
        long long ans = 0;
        for (int i = 1; s[i]; i++) {
            sum += (s[i] == ')' ? -1 : 1);
            ans += q[sum];
            q[sum]++;

            while (!q.empty() && q.begin()->first * 2 < sum) {
                q.erase(q.begin());
            }
        }
        cout << ans << endl;
    }
    return 0;
}

标签:pre,Invertible,int,sum,ans,Bracket,端点,Sequences
From: https://www.cnblogs.com/pure4knowledge/p/18259179

相关文章

  • Efficiently Modeling Long Sequences with Structured State Spaces
    目录概符号说明S4代码GuA.,GoelK.andReC.Efficientlymodelinglongsequenceswithstructuredstatespaces.NeurIPS,2022.概Mamba系列第三作.符号说明\(u(t)\in\mathbb{R}\),输入信号;\(x(t)\in\mathbb{R}^N\),中间状态;\(y(t)\in\mathbb{R}\),输......
  • jQWidgets 19.2.0 Visualize Sequences
    jQWidgets19.2.0VisualizeSequencesjQWidgets19.2.0addsanewcomponentforvisualizingchronologicaldatawithsupportforinteractivescrolling,customizablestyles,andrichcontent.jQWidgetsisacomprehensiveJavaScriptUIframeworkofferi......
  • ABC 312D题 Count Bracket Sequences
    题意给定一个非空的字符串,其由(,),?三个字符构成,其中?可以被(或者)给替换掉,求替换后的字符串是符合括号匹配的情况下的方案数。最后答案对mod=998244353取模思路应该算是一个板题,一开始的想法是往卡特兰数的方向思考,但是可能是我太水了没想出来,然后一想到卡特兰数的dp求法,就......
  • D. Invertible Bracket Sequences
    D.InvertibleBracketSequencesAregularbracketsequenceisabracketsequencethatcanbetransformedintoacorrectarithmeticexpressionbyinsertingcharacters'1'and'+'betweentheoriginalcharactersofthesequence.Forexam......
  • QOJ 4824 Bracket-and-bar Sequences
    考虑到这个实际上没有特别好的表示方法。不如从\(n\le25\),猜想合法的序列数量不多。考虑对这个计数。类似于合法括号序计数,考虑把串拆为\(\texttt{(}\cdots\texttt{|}\cdots\texttt{)}\cdots\)来考虑。那么令\(f_i\)表示\(i\)对\(\texttt{(|)}\)组成的序列的数量。......
  • 翻译《The Old New Thing》- Consequences of the scheduling algorithm: Low priorit
    Consequencesoftheschedulingalgorithm:Lowprioritythreadscantake100%CPU-TheOldNewThing(microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071220-00/?p=24093 RaymondChen 2007年12月20日调度算法的控制:低优先级线程也可能占用100%的......
  • [491] Non-decreasing Subsequences
    算法助手用户:这个题目有什么好的思路吗?“Givenanintegerarraynums,returnallthedifferentpossiblenon-decreasingsubsequencesofthegivenarraywithatleasttwoelements.Youmayreturntheanswerinanyorder.”我的代码是这样的:/**@lcapp=leetcod......
  • P4143PyramidSequences
    数学等价于在一个\(n\timesm\)的矩形中做弹球,问经过的整点个数\(t=gcd(n,m)\),将\(n,m\)分别除掉\(t\),得到\(n',m'\)此时会有\(n'm'\)条线段,每条线段经过\(t\)个整点,另外还有\(\lceil\frac{(n'+1)(m'+1)}{2}\rceil\)个交点所以最终答案为\[\lceil\frac{(n......
  • ANSI 转义序列(ANSI Escape Sequences)
    本文来自GithubGistfrom"fnky/ANSI.md"。下面是笔者翻译版本。持续更新中。ANSI转义序列标准Esc代码以Escape为前缀:Ctrl快捷键:^[八进制:\033Unicode:\u001b十六进制:\x1B十进制:27后面跟着命令,有时用左方括号([)分隔,称为控制序列引导码(CSI),后面可选地跟着......
  • CF1924D Balanced Subsequences 题解
    先判掉\(k>\min(n,m)\)的情况。首先有个明显的计算最长合法括号子序列的贪心方法:初始一个值为\(0\)的计数器,从左到右枚举每个字符,遇到(时将计数器加一,遇到)时如果计数器不为\(0\)就减一然后将答案加一。考虑绘制它的折线图。初始时纵坐标为\(0\),从左到右枚举每个字符......