Codeforces Round 981 (Div. 3)

       E. Sakurako, Kosuke, and the Permutation 思维题

           tag:math ,   graphy ,dsu  ,greedy ,  data struct 

 



中文翻译 :

                                                E. Sakurako, Kosuke和排列

                                                每项测试的时间限制:2秒

                                                每项测试的内存限制:256兆字节

       Sakurako的考试结束了,她考得很好。作为奖励,她得到了一个排列p。Kosuke不太满意,因为他有一门考试没通过,没有收到礼物。他决定潜入她的房间(多亏了她锁的密码),把排列搞乱,使其变得简单。

一个排列p被认为是简单的,如果对于每一个i(1≤i≤n),满足以下条件之一:

pi=i ppi=i 例如,排列[1,2,3,4]、[5,2,4,3,1]和[2,1]是简单的,而[2,3,1]和[5,2,1,4,3]则不是。

在一次操作中,Kosuke可以选择索引i,j(1≤i,j≤n),并交换元素pi和pj。

Sakurako马上就要回家了。你的任务是计算Kosuke需要执行的最少操作次数,以使排列变得简单。



输入 :

       第一行包含一个整数t(1≤t≤10^4)——测试用例的数量。

       每个测试用例由两行描述。

       第一行包含一个整数n(1≤n≤10^6)——排列p的长度。

       第二行包含n个整数pi(1≤pi≤n)——排列p的元素。 保证所有测试用例中n的总和不超            过  10^6。

保证p是一个排列。

输出 对于每个测试用例,输出Kosuke需要执行的最少操作次数,以使排列变得简单。

思路与分析:

   在做题的过程中 ,除了大佬上来就直切 ,平庸的我们是不可能马上就有思路,找到突破口的 。我们要对问题进行分析  ,在思考的过程中要不断的产生疑问 ,问自己一些(关键性)的问题。

   首先我们要理解题目的几个关键点,并在思

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值