CF884C.Bertown Subway

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

The construction of subway in Bertown is almost finished! The President of Berland will visit this city soon to look at the new subway himself.

There are n stations in the subway. It was built according to the Bertown Transport Law:

  1. For each station i there exists exactly one train that goes from this station. Its destination station is p__i, possibly p__i = i;
  2. For each station i there exists exactly one station j such that p__j = i.

The President will consider the convenience of subway after visiting it. The convenience is the number of ordered pairs (x, y) such that person can start at station x and, after taking some subway trains (possibly zero), arrive at station y (1 ≤ x, y ≤ n).

The mayor of Bertown thinks that if the subway is not convenient enough, then the President might consider installing a new mayor (and, of course, the current mayor doesn't want it to happen). Before President visits the city mayor has enough time to rebuild some paths of subway, thus changing the values of p__i for not more than two subway stations. Of course, breaking the Bertown Transport Law is really bad, so the subway must be built according to the Law even after changes.

The mayor wants to do these changes in such a way that the convenience of the subway is maximized. Help him to calculate the maximum possible convenience he can get!

贝尔顿市的地铁建设即将完工!贝尔兰总统将很快访问这座城市,亲自视察新建的地铁系统。

地铁共有 nn 个车站。该地铁系统严格依照《贝尔顿交通法》建造:

  1. 对于每个车站 ii,恰好存在一列从该车站出发的列车,其目的地车站为 pip_i(允许 pi=ip_i = i);
  2. 对于每个车站 ii,恰好存在一个车站 jj,使得 pj=ip_j = i。

总统在参观后将评估地铁系统的“便利性”。便利性定义为满足如下条件的有序对 (x,y)(x, y) 的数量:一个人可以从车站 xx 出发,乘坐若干次(可能为零次)地铁列车后到达车站 yy(其中 1≤x,y≤n1 \le x, y \le n)。

贝尔顿市长认为,如果地铁便利性不足,总统可能会考虑更换一位新市长(当然,现任市长绝不想让这种情况发生)。在总统到访之前,市长仍有充足时间重建部分地铁线路,即最多修改两个车站 ii 对应的 pip_i 值。当然,严重违反《贝尔顿交通法》是绝对不可接受的,因此所有修改完成后,地铁系统仍必须完全满足该法律的要求。

市长希望以最优方式实施这些修改,使得地铁的便利性最大化。请帮助他计算所能达到的最大便利性!

输入格式

The first line contains one integer number n (1 ≤ n ≤ 100000) — the number of stations.

The second line contains n integer numbers _p_1, _p_2, ..., p__n (1 ≤ p__i ≤ n) — the current structure of the subway. All these numbers are distinct.

第一行包含一个整数 nn(1≤n≤1000001 \leq n \leq 100000)—— 车站的数量。

第二行包含 nn 个整数 p1,p2,…,pnp_1, p_2, \ldots, p_n(1≤pi≤n1 \leq p_i \leq n)—— 当前地铁的结构。这些数互不相同。

输出格式

Print one number — the maximum possible value of convenience.

输出一个数字——便利性的最大可能值。

输入输出样例

  • 输入#1

    3
    2 1 3

    输出#1

    9
  • 输入#2

    5
    1 5 4 3 2

    输出#2

    17

说明/提示

In the first example the mayor can change _p_2 to 3 and _p_3 to 1, so there will be 9 pairs: (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3).

In the second example the mayor can change _p_2 to 4 and _p_3 to 5.

在第一个例子中,市长可以将 p2p_2 改为 3,将 p3p_3 改为 1,这样就会有 9 对:(1, 1)(1,\,1)、(1, 2)(1,\,2)、(1, 3)(1,\,3)、(2, 1)(2,\,1)、(2, 2)(2,\,2)、(2, 3)(2,\,3)、(3, 1)(3,\,1)、(3, 2)(3,\,2)、(3, 3)(3,\,3)。

在第二个例子中,市长可以将 p2p_2 改为 4,将 p3p_3 改为 5。

输入解题思路,AI测评打分。不知道怎么写?

首页