打卡信奥刷题(378)用Scratch图形化工具信奥P6549[普及组/提高] [COCI2010-2011#2] KNJIGEOR

[COCI2010-2011#2] KNJIGE

题目描述

Mirko 有一个由 n n n 本书组成的家庭图书馆, n n n 本书在一个狭窄的橱柜中一个接一个地排列。由于在上一任务中对字母进行了很好的训练,他现在希望按字母顺序排列书籍,以使书名字典序排第一的书排在最后,而字典序排最后的书在书橱的底部。

Mirko 可以轻松地将书从书橱中拉出,但是很难将其推回书橱中,因此只能将书放回到书橱的顶部。因此,将书排序籍的唯一可用方法是反复将书籍从书橱中拉出并将其放在书橱的顶部。

这些书按字母顺序用从 1 1 1 n n n 的整数标记。因此,Mirko 希望从顶部开始将它们排序为 ( 1 , 2 , ⋯   , n ) (1,2, \cdots ,n) (1,2,,n)。例如,如果 n = 3 n = 3 n=3 且开始顺序为 ( 3 , 2 , 1 ) (3,2,1) (3,2,1),则两步就足够了。首先,他拉出编号为 2 2 2 的书并将其放在最上面,这样书的顺序便变成 ( 2 , 3 , 1 ) (2,3,1) (2,3,1)。之后,他对编号为 1 1 1 的书执行相同操作,因此书的顺序变成 ( 1 , 2 , 3 ) (1,2,3) (1,2,3)

计算给定起始顺序,排序完毕所需的最少移动次数。

输入格式

第一行一个整数 n n n,具体含义请见题目描述。

接下来 n n n 行,每行一个正整数,表示书籍的初始摆放顺序。

输出格式

一行一个整数,表示使书籍按照自然数顺序排列所需的最小移动步数。

样例 #1

样例输入 #1

3
3
2
1

样例输出 #1

2

样例 #2

样例输入 #2

4
1
3
4
2

样例输出 #2

2

提示

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 1 ≤ n ≤ 3 × 1 0 5 1 \leq n \leq 3 \times 10^5 1n3×105,书籍的初始摆放顺序为 1 … n 1\ldots n 1n 的一个排列。

说明

Scratch实现

在这里插入图片描述

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值