洛谷P5658 [CSP-S 2019] 括号树一题的题解
注意到有两个fii-1,也就是说他爹必在它前一个位置即这棵树退化成一条链直接暴力枚举所有情况再写一个check函数用来检查子串是否合法。顺带提一嘴检查方法为用一个栈从头到脚依次压入字符当出现“”时弹出栈顶元素看是否匹配。#includebits/stdc.husingnamespacestd;intn,f[500005],ans0;intm;string s;boolcheck(inti,intj){stackcharst;for(intli;lj;l){if(s[l]()st.push(();else{if(st.empty())returnfalse;st.pop();}}returnst.empty();}intmain(){cinn;cins;s s;for(inti1;in;i){cinf[i];//这玩意儿目前还没用}for(inti1;in;i){ans0;for(intl1;ln;l){for(intrl;ri;r)if(check(l,r)){ans;}}m^(i*ans);}coutm;return0;}但是这个方法只能得20分对我来说足够了说明超时了我们应当考虑优化算法。因为树已经退化成了链式结构我们可以想想用dp。咋个用呢如果当前字符是’(直接将序号入栈如果当前字符是 ‘)’1.栈为空说明无法匹配dp[i]02.栈不为空弹出匹配的左括号位置 pos匹配一对 ()同时 pos 左侧连续的合法括号串可以拼接进来。#includebits/stdc.husingnamespacestd;longlongn,f[500005],dp[500005],pos,ans,sum;longlongm;string s;intmain(){cinn;cins;s s;for(longlongi1;in;i){cinf[i];//这玩意儿目前还没用}stacklonglongst;for(longlongi1;in;i){if(s[i](){st.push(i);}else{if(!st.empty()){posst.top();st.pop();dp[i]dp[pos-1]1;}}}for(longlongi1;in;i){sumdp[i];ans^(sum*i);}coutans;return0;}然而还是只有55分。考虑把第一段和第二段结合一下满足链式结构时用dp不满足时用个暴力深搜能多骗一些是一些。#includebits/stdc.husingnamespacestd;intn,m;string s;vectorintG[100005];charval[100005];boolcheck(string t){stackintst;for(intl0;lt.size();l){if(t[l]()st.push(();else{if(st.empty())returnfalse;st.pop();}}returnst.empty();}longlongxdp(){vectorlonglongdp(n1,0);vectorintst;longlongsum0,ans0;for(inti1;in;i){if(s[i-1](){st.push_back(i);dp[i]0;}else{if(!st.empty()){intpostst.back();st.pop_back();dp[i]dp[post-1]1;}else{dp[i]0;}}sumdp[i];ans^(1LL*i*sum);}returnans;}longlongdfs(intu,string path){path.push_back(val[u]);intLpath.size();intk0;for(intl0;lL;l){for(intrl;rL;r){string subpath.substr(l,r-l1);if(check(sub))k;}}longlongans1LL*u*k;for(inti0;iG[u].size();i){intvG[u][i];ans^dfs(v,path);}returnans;}intmain(){cinn;cins;for(inti0;in;i){val[i1]s[i];}boolisftrue;vectorintf(n1);for(inti2;in;i){intx;cinx;f[i]x;if(f[i]!i-1)isffalse;G[f[i]].push_back(i);}longlongans;if(isf){ansxdp();}else{ansdfs(1,);}coutans;return0;}这样就可以再多15分了。但最后还是得写满分代码不然写这题解没意义。可以把dp迁移到树上dp[u]dp[f[m]]1。#includebits/stdc.husingnamespacestd;longlongn,sum0,ans0;string s;vectorlonglongG[500005];longlongf[500005];longlongdp[500005];vectorlonglongst;voiddfs(longlongu){longlongoldsumsum;longlongm-1;if(s[u-1](){st.push_back(u);dp[u]0;}else{if(!st.empty()){mst.back();st.pop_back();dp[u]dp[f[m]]1;}else{dp[u]0;}}sumdp[u];ans^(1LL*u*sum);for(longlongi0;i(longlong)G[u].size();i){dfs(G[u][i]);}sumoldsum;if(s[u-1](){st.pop_back();}else{if(m!-1){st.push_back(m);}}}intmain(){cinn;cins;f[1]0;for(inti2;in;i){cinf[i];G[f[i]].push_back(i);}dfs(1);coutans;return0;}

相关新闻

Unity背包系统开发:基于UGUI的智能拖拽与数据交换实现

Unity背包系统开发:基于UGUI的智能拖拽与数据交换实现

1. 项目概述:为什么需要一个“聪明”的背包系统?在Unity里做游戏,尤其是RPG、生存建造或者策略类,背包系统几乎是绕不开的核心模块。新手可能会觉得,不就是一堆格子,能放东西、能拿东西吗?但真正…

2026/8/5 9:58:16 阅读更多 →
Unity WebGL本地运行报错?一文详解跨域问题与部署方案

Unity WebGL本地运行报错?一文详解跨域问题与部署方案

1. 项目概述:从本地文件到网络服务的鸿沟如果你和我一样,是个喜欢用Unity鼓捣点小玩意儿,然后迫不及待地想通过浏览器分享给朋友看看的开发者,那你大概率也踩过这个坑:在Unity里精心构建了一个WebGL项目,导…

2026/8/5 9:58:16 阅读更多 →
CnOpenData 管理层讨论与分析基本信息表

CnOpenData 管理层讨论与分析基本信息表

据《上市公司信息披露管理办法》,上市公司作为信息披露义务人,应真实、准确、及时、完整地向市场公开依法及自愿披露的信息。这些公开披露的信息包含但不仅限于公司基本情况、主要会计数据和财务指标、股东持股情况、高管薪酬情况等。上市公司信息披露是…

2026/8/5 9:58:16 阅读更多 →

最新新闻

Universal-Updater:重新定义3DS自制软件管理的革命性工具

Universal-Updater:重新定义3DS自制软件管理的革命性工具

Universal-Updater:重新定义3DS自制软件管理的革命性工具 【免费下载链接】Universal-Updater An easy to use app for installing and updating 3DS homebrew 项目地址: https://gitcode.com/gh_mirrors/un/Universal-Updater 对于每一个3DS自制软件爱好者来…

2026/8/5 10:39:46 阅读更多 →
若依框架接口免认证开放实践:安全实现外部系统对接

若依框架接口免认证开放实践:安全实现外部系统对接

1. 项目概述:为什么需要让若依“裸奔”? 最近在几个项目对接的场景里,我反复被问到同一个问题:“我们有一套基于若依(RuoYi)快速搭建的内部管理系统,现在想开放几个API给外部的合作伙伴或者移动…

2026/8/5 10:39:46 阅读更多 →
深入解析Linux编译报错:cannot find -lxxx的排查与解决

深入解析Linux编译报错:cannot find -lxxx的排查与解决

1. 项目概述:从一次编译报错说起如果你在Linux或类Unix系统上做过C/C开发,尤其是需要链接第三方库的时候,大概率见过这个让人心头一紧的错误信息:/usr/bin/ld: cannot find -lxxx。这个报错就像程序员的“家常便饭”,看…

2026/8/5 10:39:46 阅读更多 →
从代码洁癖到挖坑哲学:AI时代开发者的务实编程之道

从代码洁癖到挖坑哲学:AI时代开发者的务实编程之道

1. 从“代码洁癖”到“挖坑人生”:一个老码农的认知转变 干了十几年开发,我发现自己身上有个标签越来越重——“代码洁癖”。这个词听起来挺专业,甚至带点褒义,仿佛在说你对代码质量有追求。但说实话,这些年&#xff0…

2026/8/5 10:39:46 阅读更多 →
5分钟快速上手:VideoDownloadHelper视频下载插件完整指南

5分钟快速上手:VideoDownloadHelper视频下载插件完整指南

5分钟快速上手:VideoDownloadHelper视频下载插件完整指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 还在为无法保存网络视频…

2026/8/5 10:39:46 阅读更多 →
赋值操作符

赋值操作符

总概括:对于变量,先有初始化,之后便可对它进行赋值 int a100; a200; 相当于把200赋值给a 只要赋值,就不是原来的初始量 1.复合赋值符 就是一些便捷写法 自加 自减- 自乘* 自取模% / a2 相当于aa2(自己加2的意思) 2.单目操作符– …

2026/8/5 10:38:45 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →