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

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

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

Choosing Column Prefixes

返回题目

题解

PjP_jPj​를 111 늘릴 때 새로 더해지는 값은 APj+1+BjA_{P_j+1}+B_jAPj​+1​+Bj​이다. AAA가 내림차순이므로 각 열에서 더 위에 있는 값을 고르지 않고 아래 값을 고르는 일은 최적해에 필요하지 않다. 따라서 전체 N2N^2N2개의 값 Ai+BjA_i+B_jAi​+Bj​ 중 큰 것 KKK개를 고른 합이 답이다.

어떤 정수 xxx 이상인 쌍의 개수는 BBB를 정렬한 뒤 각 AiA_iAi​에 대해 이분 탐색하여 O(Nlog⁡N)O(N\log N)O(NlogN)에 셀 수 있다. 개수가 이상인 가장 큰 를 찾는다. 그 뒤 보다 큰 모든 쌍의 합을 구하고, 부족한 개수만큼 를 더한다. 합은 64비트 정수 범위를 넘을 수 있으므로 128비트 정수를 사용해야 한다.

KKK
xxx
xxx
xxx