首页 > 其他分享 >CSPS2019 括号树 题解

CSPS2019 括号树 题解

时间:2022-10-26 12:13:19浏览次数:51  
标签:CSPS2019 sta 题解 top dfs 括号 pei he

链的部分分

我们设f[i]表示以i结尾的括号序列有多少个,那么i的实际答案就是f的前缀和

显然,所有左括号和不能匹配的右括号的f均为0

对于每一个能匹配的右括号i,我们找到与之匹配的左括号p,以i结尾的括号序列就是以p-1结尾的括号序列加上p~i这段序列。所以f[i]=f[p-1]+1。

时间复杂度 \(O(n)\) 。

满分做法

发现实际上一棵树在询问 u 节点时就是一条从 1 到 u 的链。那么我们就在dfs过程中更新括号匹配和前缀和就行

别把字符串的变量和栈的变量搞混了。最好的办法是字符串变量大写

void dfs(ll u)
{
    if(a[u] == 0) sta[++ top] = u;
    else
    {
        if(top)
        {
            pei[u] = sta[top];
            top --;
            f[u] = f[fa[pei[u]]] + 1;
            he += f[u];
        }
    }
    ans ^= (he * u);
    for(auto v : e[u])
    {
        if(v == fa[u]) continue;
        dfs(v);
    }
    if(a[u] == 0) top --;
    else if(pei[u]) sta[++ top] = pei[u], he -= f[u];  
    return ;
}

标签:CSPS2019,sta,题解,top,dfs,括号,pei,he
From: https://www.cnblogs.com/closureshop/p/16827841.html

相关文章

  • EasyCVR数据库优化:ehome设备表不能同步更新的问题解决
    EasyCVR视频融合云平台可支持多协议、多设备接入,包括国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议,同时也能分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视......
  • P7911 网络连接评论及c++题解
    P7911网络连接1.原题链接root2.评论下位黄的水平前置知识:sscanf()函数,sprintf()函数,map<>当然,不会sscanf()和sprintf()也有解法,详见解法13.解法解法1#inclu......
  • arc138C 题解
    挺喜欢这道题,可惜大号已经红了,又不想要估值,只能用小号交。A与B在玩游戏,其中A先手。有\(n\)个数\(a_1-a_n\),A每次可以任意取一个数,B每次会取没有被取的数......
  • 2022ACM第二次招新题解
    A-签到题这道超级简单的题目没有任何输入。你只需要在一行中输出著名短句"helloworld"就可以了。代码&思路无思路记得完全一样就行,别整Helloworld/helloworl......
  • CYSYOI 2022 Round #1 赛后题解报告
    CYSYOI2022Round#1赛后题解报告我是个大聪明,一个200分的蒟蒻忍泪前来写题解和赛后报告。/kk赛后题解T1CHT去挖矿题目详情算法解析好的,一道大模拟。直接上代......
  • EasyCVR数据库优化:ehome设备表不能同步更新的问题解决
    EasyCVR视频融合云平台可支持多协议、多设备接入,包括国标GB28181、RTMP、RTSP/Onvif、海康SDK、大华SDK、Ehome等协议,同时也能分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视......
  • 背包问题常见解题策略与例题解析
    背包问题作为常见的一种Dp题目的变法多种多样然而只要你理解透了背包的做法和各种优化模型就显而易见了千万不要似懂非懂如果还有疑虑可以参考我的另一篇文章​​​背......
  • 洛谷 P5698 [CTSC1998]算法复杂度 题解
    前言咕了大半年,我回来了说实话当鸽子的感觉挺不错???原题链接题意给定一个伪代码,判断他总共需要进行几次操作,用多项式形式输出。题解首先,这是一道模拟题,发现性质的话比......
  • 【问题解决】win10显示器扩展设置及接口辨析
    问题描述电脑多屏显示主机接口辨析win10设置开始(左下角)--设置(小齿轮):点击系统(显示、通知、应用、电源):点击显示或屏幕:扩展屏幕:横向,扩展这些......
  • CF1732D2 Balance (Hard version) 题解
    前天打了波CF结果怒掉100分,果然退化得太厉害了,遂于昨晚补题.题面维护一个集合SS,有三种操作:插入一个数、删除一个数、查询kk的倍数中没出现过的最小的数。思路考......