当前位置: 首页 > news >正文

打卡信奥刷题(3411)用C++实现信奥题 P10115 [LMXOI Round 1] Placer

P10115 [LMXOI Round 1] Placer

题目背景

LMX 最近迷上了括号序列,她尤其钟爱合法括号序列。

LMX 为了检验 HQZ 的真诚,于是她出一道题准备考验下 HQZ。

题目描述

LMX 给出了一个长度为nnn括号序列SSS,以及一个长度为nnn的序列aia_iai

定义w(l,r)={ar−al,Sl..r为合法括号序列 0otherwisew(l,r)= \begin{cases} a_r-a_l, & S_{l..r} \text{为合法括号序列}\\ \ 0 & \text{otherwise} \end{cases}w(l,r)={aral,0Sl..r为合法括号序列otherwise

你可以将序列分成若干非空子段,定义整个序列的美丽度为每段的w(l,r)w(l , r)w(l,r)之和。

求美丽度最大为多少。

输入格式

第一行一个整数nnn

第二行一个字符串,代表括号序列。

第三行代表序列aaa

输出格式

第一行一个整数,表示最大的美丽度。

输入输出样例 #1

输入 #1

5 ()(() 1 3 2 3 5

输出 #1

4

输入输出样例 #2

输入 #2

10 ()((())()) 2 4 1 7 3 2 8 4 9 5

输出 #2

8

说明/提示

样例解释 #1

原串可以划分成三个区间:[1,2],[3,3],[4,5][1,2],[3,3],[4,5][1,2],[3,3],[4,5]。贡献为(a2−a1)+0+(a5−a4)=(3−1)+0+(5−3)=4(a_2-a_1)+0+(a_5-a_4)=(3-1)+0+(5-3)=4(a2a1)+0+(a5a4)=(31)+0+(53)=4

子任务编号nnn特殊性质分值
Subtask #1≤5000\le 50005000303030
Subtask #2≤105\le 10 ^ 5105202020
Subtask #3≤3×106\le 3 \times 10 ^ 63×106括号序列为()()…()()()\dots()()()()151515
Subtask #4≤3×106\le 3 \times 10 ^ 63×106353535

对于100%100\%100%的数据,1≤ai≤1091\le a_i \le 10^91ai109

C++实现

#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=3e6+5,inf=1e18;intn,a[N],lst[N],r;intf[N],st[N],c[N];boolb[N];string S;signedmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n>>S;for(inti=1;i<=n;++i)cin>>a[i],b[i]=(S[i-1]=='(');for(inti=1;i<=n;++i)if(!b[i]&&r)lst[i]=st[r--];elseif(b[i])st[++r]=i;for(inti=0;i<=n;++i)f[i]=c[i]=-inf;f[0]=0;for(inti=1;i<=n;++i){f[i]=f[i-1];if(lst[i]){c[i]=max(c[lst[i]-1],f[lst[i]-1]-a[lst[i]]);f[i]=max(c[i]+a[i],f[i]);}}cout<<f[n];return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/1081009/

相关文章:

  • 第 4 篇:HTTPS、SSL/TLS 与证书体系
  • 基于async-http-client的HTTPS混合内容自动化检测方案
  • 深入解析UART接收器:从异步通信原理到MSC8144实战配置
  • 600V高压半桥驱动器MCP14LH2101:从自举电路到LLC谐振的实战设计指南
  • 深入解析MCP16311/2:峰值电流模式与PFM/PWM混合控制的高效电源设计
  • 掌握FanControl:三步解决Windows风扇噪音与散热平衡难题
  • VPFAY神经酸是怎么做出来的?从原料筛选到成品出厂的全流程解密
  • 拳皇97风云再起手机版下载|2026 经典街机格斗游戏推荐
  • emWin核心控件实战:滚动条、滑块、微调框与文本控件的深度应用
  • 如何使用lessmsi高效解压和分析Windows安装包
  • 基于LLM的智能网页自动化:Browser-Use原理、实战与优化
  • MCU硬件断点与实时追踪:S08DBGV3调试模块实战解析
  • Windows和Office激活终极指南:5分钟搞定KMS智能激活方案
  • 【VMware云迁移黄金法则】:20年架构师亲授5大避坑指南,90%企业踩过的3个致命错误你中招了吗?
  • MPC8555E PowerQUICC III处理器:嵌入式系统架构与实战开发详解
  • Anosov子群极限集的Hausdorff维数:自仿射复杂性的度量与挑战
  • 告别风扇噪音:5步实现Windows风扇智能控制的终极指南
  • 终极Visual C++运行库解决方案:告别DLL缺失错误的完整指南
  • USB设备开发:从端点0到数据流的底层通信机制详解
  • Cahn-Hilliard-Brinkman模型弱解全局存在性证明与数值模拟指导
  • MCU调试模块实战:FIFO、触发与硬件断点深度解析
  • MPC8544E内存控制器深度解析:SDRAM时序与UPM可编程接口实战
  • 英雄联盟Seraphine助手:免费战绩查询与智能BP辅助工具终极指南
  • MPC8560 RapidIO错误检测与中断机制:嵌入式通信可靠性保障
  • 如何用Ice实现3个macOS菜单栏管理技巧:新手必读指南
  • 终极显卡调校指南:用NVIDIA Profile Inspector解锁隐藏性能
  • 暗黑破坏神2存档编辑器技术深度解析:Vue.js驱动的角色定制架构实战指南
  • Late Chunking:突破RAG语义断裂的晚分块技术实践
  • 重新定义浏览器中的Markdown阅读体验:开源项目的设计哲学
  • 网约车调度与定价联合优化:流体松弛模型的核心原理与工程实践