CF347B.Fixed Points
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A permutation of length n is an integer sequence such that each integer from 0 to (n - 1) appears exactly once in it. For example, sequence [0, 2, 1] is a permutation of length 3 while both [0, 2, 2] and [1, 2, 3] are not.
A fixed point of a function is a point that is mapped to itself by the function. A permutation can be regarded as a bijective function. We'll get a definition of a fixed point in a permutation. An integer i is a fixed point of permutation _a_0, _a_1, ..., a__n - 1 if and only if a__i = i. For example, permutation [0, 2, 1] has 1 fixed point and permutation [0, 1, 2] has 3 fixed points.
You are given permutation a. You are allowed to swap two elements of the permutation at most once. Your task is to maximize the number of fixed points in the resulting permutation. Note that you are allowed to make at most one swap operation.
长度为 n 的一个排列是指一个整数序列,其中从 0 到 n−1 的每个整数恰好出现一次。例如,序列 [0,2,1] 是一个长度为 3 的排列,而 [0,2,2] 和 [1,2,3] 都不是。
函数的不动点是指被该函数映射到其自身的点。由于排列可视为一个双射函数,我们可由此引出排列中不动点的定义:当且仅当 ai=i 时,整数 i 是排列 a0,a1,…,an−1 的一个不动点。例如,排列 [0,2,1] 有 1 个不动点,而排列 [0,1,2] 有 3 个不动点。
给定一个排列 a。你最多可以对排列中的两个元素执行一次交换操作。你的任务是使最终排列的不动点数量尽可能多。注意:你最多只能进行一次交换操作。
输入格式
The first line contains a single integer n (1 ≤ n ≤ 105). The second line contains n integers _a_0, _a_1, ..., a__n - 1 — the given permutation.
第一行包含一个整数 n(1≤n≤105)。第二行包含 n 个整数 a0,a1,...,an−1 —— 给定的排列。
输出格式
Print a single integer — the maximum possible number of fixed points in the permutation after at most one swap operation.
输出一个整数——在最多执行一次交换操作后,排列中固定点的最大可能数量。
输入输出样例
输入#1
5 0 1 3 4 2
输出#1
3
输入解题思路,AI测评打分。不知道怎么写?