DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 账号绑定的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

Parentheses Flip

返回题目

题解

먼저 모든 문자를 )로 만든다고 생각하자. 이때 원래 (였던 위치를 뒤집는 비용의 합을 CCC라고 하자.

어떤 위치를 다시 (로 선택할 때 추가되는 비용은 원래 문자가 (라면 −Ai-A_i−Ai​, 원래 문자가 )라면 +Ai+A_i+Ai​이다. 올바른 괄호 문자열이 되려면 길이가 홀수인 모든 접두사 1,3,5,⋯ ,2N−11,3,5,\cdots,2N-11,3,5,⋯,2N−1에서 여는 괄호의 수가 각각 1,2,3,⋯ ,N1,2,3,\cdots,N1,2,3,⋯,N개 이상이어야 한다.

왼쪽부터 위치를 추가하면서 우선순위 큐에 해당 위치의 추가 비용을 넣는다. 홀수 위치에 도달할 때마다 지금까지 보았지만 아직 선택하지 않은 위치 중 추가 비용이 가장 작은 위치 하나를 (로 선택한다. 각 단계에서 새로 필요한 여는 괄호 하나를 가능한 최소 비용으로 선택하므로 전체 비용이 최소가 된다.

우선순위 큐를 사용하면 시간 복잡도는 O(Nlog⁡N)O(N\log N)O(NlogN)이다. Solution written by GPT5.6