• 括号匹配杂谈


    目前的体感是在平衡度上做文章,若只考虑两串的拼接关系进行计数,可以把信息压缩到平衡度上

    现有的压缩方法例如dp[i][j]表示长为i,平衡度j的括号串数目,

    dp[i][j]=dp[i-1][j-1]+dp[i-1][j+1],计左括号平衡度+1,右括号平衡度-1

    这个dp后文就叫平衡度计数了,可以用作不少括号匹配计数问题的核心代码

    --------------------------------------------------------------------------------------------------

    例题1:629C - Famil Door and Brackets

    长度为m的括号串通过在两侧各拼接一个串扩展到长为n的方法数,n-m<=2000,n1e5

    由于只要前后串的平衡度满足平衡就可以算作拼接成功,可以

    预处理平衡度计数,然后枚举前串的长度和平衡度进行check是否可行,

    可行就往答案贡献平衡度计数

    --------------------------------------------------------------------------------------------------

    例题2:918C - The Monster

    长为n的括号和?组成的串,问合法的括号匹配区间有多少,n5e3

    复杂度首先第一维枚举左端点,第二维枚举右端点

    那么尝试让这个区间做到合法匹配,一个贪心的策略是记录?的个数,这个是可调整范围的依据,

    1:扫描到左括号,平衡度++

    2:扫描到问号,若平衡度等于问号数目,这个问号只能当做左括号,平衡度++,否则计入问号数

    3:扫描到右括号,检测平衡度正就消除1点,否则调用一个问号,问号不够直接这个区间做不到合法

    优先让左右括号自然匹配,不得已才调用问号继续扫描

  • 相关阅读:
    vs2010 项目生成成功,发布失败
    net导出到excel数字变为科学技术法
    vba 2-6位随机大小写字母
    vba 延时
    foxmail错误信息:501 请登录exmail.qq.com修改密码
    电脑开机出现C:WindowsSystem32driversfs_rec.sys
    向txt中插入一行数据
    定时关机
    ASCII码
    C# 事件与继承
  • 原文地址:https://www.cnblogs.com/Drenight/p/8611752.html
Copyright © 2020-2023  润新知