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

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

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

Interval Diversity

返回题目

题解

모든 시작점 lll을 고정하고, 끝점 rrr을 lll부터 NNN까지 하나씩 늘려 보자.

현재 구간에 들어 있는 값들의 등장 횟수를 저장하면, ArA_rAr​을 새로 추가할 때 이 값이 이전에 등장하지 않았는지 확인할 수 있다. 이전에 등장하지 않았다면 서로 다른 정수의 개수 xxx를 111 증가시킨다.

각 구간의 길이는 y=r−l+1y=r-l+1y=r−l+1이므로, 모든 구간에 대해 x2/yx^2/yx2/y를 계산하여 최댓값을 갱신하면 된다.

구간의 개수는 O(N2)O(N^2)O(N2)개이고 각 갱신은 평균 O(1)O(1)O(1)에 할 수 있으므로 전체 시간 복잡도는 O(N2)O(N^2)O(N2)이다.