lqb#P26014. 擂台赛

擂台赛

题目描述

小蓝想要组织一场擂台赛,比赛共有 nn 位选手,编号为 11nn。初始时,每位选手 ii 都在属于自己的第 ii 号擂台上。每位选手 ii 都有且仅有一个想要前往挑战的目标擂台 aia_i

比赛开始时,小蓝需要制定一个出战顺序。按照该顺序,对于每一位出战选手 ii

  • 如果他的目标擂台 aia_i 目前未被关闭,他将离开自己的 ii 号擂台并前往 aia_i 号擂台发起挑战,同时关闭自己原先所在的擂台 ii
  • 如果他的目标擂台 aia_i 已被关闭,则他无法发起挑战,只能留在原地。

小蓝希望设置一个出战顺序,使得最终被使用过(即作为挑战目标被成功前往)的擂台数量尽可能少。需要注意的是,留在原地的选手并不计入对擂台的使用。

请你帮小蓝计算,在最优的出战顺序下,最少有多少个擂台被使用过?

输入格式

输入共 2 行。

第一行为一个正整数 nn,表示选手数量。

第二行为 nn 个正整数 a1,a2,,ana_1, a_2, \dots, a_n,表示每位选手的目标擂台编号。

输出格式

输出一个整数,表示最少被使用过的擂台数量。

5
2 3 4 5 4
2

解释 #1

其中一种最优的出战顺序为:1,3,2,5,41, 3, 2, 5, 4

  1. 选手 11 挑战 22:目标擂台 22 未关闭,出战成功,关闭擂台 11,使用擂台 22
  2. 选手 33 挑战 44:目标擂台 44 未关闭,出战成功,关闭擂台 33,使用擂台 44
  3. 选手 22 挑战 33:目标擂台 33 已被选手 33 出战时关闭,选手 22 只能留在原地;
  4. 选手 55 挑战 44:目标擂台 44 未关闭,出战成功,关闭擂台 55,使用擂台 44
  5. 选手 44 挑战 55:目标擂台 55 已被选手 55 出战时关闭,选手 44 只能留在原地。

最终被使用过的擂台为 {2,4}\{2, 4\},共 22 个。

数据范围

  • 对于 30%30\% 的数据,n10n \leq 10
  • 对于 100%100\% 的数据,1n1061 \leq n \leq 10^61ain1 \leq a_i \leq naiia_i \ne i