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

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

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

Baseball Fans

返回题目

题解

먼저 각 팀의 대표 팬을 한 명씩 찾는다.

111번부터 iii번까지의 사람들을 모두 포함하는 집합에 대해 query를 호출한다고 하자. 이 반환값이 이전보다 증가했다면, 방금 추가된 iii번 사람은 지금까지 등장하지 않았던 새로운 팀의 팬이다. 따라서 iii번 사람을 그 팀의 대표로 기록한다.

이 과정을 마치면 모든 팀에 대해 대표 팬을 정확히 한 명씩 확보할 수 있다. 대표 팬들은 모두 서로 다른 팀을 응원한다.

이제 아직 분류되지 않은 사람 ppp를 생각하자. 대표 팬들의 어떤 부분집합 SSS에 ppp를 함께 넣어 질의한다. 대표 팬들은 서로 팀이 다르므로, ∣S∣|S|∣S∣명의 대표 팬만 고르면 서로 다른 팀의 수는 ∣S∣|S|∣S∣이다.

  • 반환값이 ∣S∣|S|∣S∣라면, SSS 안에 ppp와 같은 팀의 대표 팬이 있다.
  • 반환값이 ∣S∣+1|S|+1∣S∣+1이라면, SSS 안에는 와 같은 팀의 대표 팬이 없다.

따라서 대표 팬들의 배열에서 이분 탐색을 수행하여, ppp가 어떤 대표 팬과 같은 팀인지 찾을 수 있다.

대표 팬을 찾는 데 NNN번의 질의를 사용하고, 각 사람을 분류하는 데 O(log⁡N)O(\log N)O(logN)번의 질의를 사용한다. N≤100N \le 100N≤100이므로 전체 질의 수는 100010001000번 이하이다.

pp
p