KRIZA
时间限制:1秒 内存限制:256M
题目背景
Mirko 用拖拉机采蘑菇。
题目背景
某国的经济状况很糟糕,冰冻灾害袭击了整个国家,人们正在失去工作。然而,Sisyphus,本题的主角,已经为自己找到了一份新工作。从下周一开始,Sisyphus 将成为一家酒店的助理锁匠。当然,他首先需要向锁匠头子展示他的开锁能力。
题目描述
这就是锁匠头子给了 Sisyphus \(n\) 把钥匙,放在一个大圆坠子上,蒙住他的眼睛并把他带进一个大房间的原因。这个房间里恰好有 \(n\) 扇锁着的门,用 \(1\) 到 \(n\) 的数字表示。吊坠上的每一把钥匙都正好能打开一扇门,其中第 \(i\) 把钥匙能打开第 \(v_i\) 扇门。Sisyphus 的工作是将每一扇门解锁并再次上锁。他这样做的方式是沿着墙壁移动,不改变方向,直到他到达一扇门。当他走到一扇门前时,他尝试用从当前左数第一把钥匙来解锁。如果钥匙没有开锁,Sisyphus 就把它丢到最右边,并再用当前最左边的那一把钥匙再试一次,重复这个过程,直到他找到正确的钥匙为止。当他所有的门解锁时,他的工作就完成了。Sisyphus 打开的第一扇门用 \(1\) 表示,下一扇用 \(2\) 表示,后一扇用 \(3\) 表示,以此类推......
Sisyphus 不知道的是,锁匠头子其实是在考验他的耐力,所以把他领到了一个圆形的房间。因此,Sisyphus 在解开并锁上最后一扇门后,会再次去解开并锁上第一扇门。因为他是一个勤奋而执着的家伙,Sisyphus 一直在做这项工作,几个小时都没有说一句话。只有在第 \(k\) 次成功开锁和锁门后,他才开口说话:"如果我知道到目前为止我把一把错误的钥匙放在门锁里有多少次就好了!" 你的任务是回答他的问题。
输入格式
输入共 \(n+1\) 行。
第一行输入两个整数 \(n,k\),分别表示 Sisyphus 拥有的的钥匙数量和他当前为止成功开锁和锁门的次数。
随后 \(n\) 行,每行一个整数 \(v_i\),表示第 \(i\) 把钥匙对应能开的门的编号。
输出格式
输出仅一行,表示 Sisyphus 把一把错误的钥匙放在门锁里的次数。
输入输出样例 #1
输入 #1
3 5
1
2
3
输出 #1
4
输入输出样例 #2
输入 #2
4 6
4
2
1
3
输出 #2
13
输入输出样例 #3
输入 #3
10 7
1
3
2
4
5
7
6
8
9
10
输出 #3
25
说明/提示
【样例 2 解释】
以下是 Sisyphus 使用钥匙的情况,其中一个标红的数字表示他把错误的钥匙放在门锁里一次:
- 对第 \(1\) 扇门进行开锁和锁门操作:\(\color{Red}4~2~\color{default}1~3\)
- 对第 \(2\) 扇门进行开锁和锁门操作:\(\color{Red}1~3~4~\color{default}2\)
- 对第 \(3\) 扇门进行开锁和锁门操作:\(\color{Red}2~1~\color{default}3~4\)
- 对第 \(4\) 扇门进行开锁和锁门操作:\(\color{Red}3~\color{default}4~2~1\)
- 对第 \(1\) 扇门进行开锁和锁门操作:\(\color{Red}4~2~\color{default}1~3\)
- 对第 \(2\) 扇门进行开锁和锁门操作:\(\color{Red}1~3~4~\color{default}2\)
因此他把错误的钥匙放在门锁里的次数一共是 \(2+3+2+1+2+3=13\)。
【数据范围】
对于 \(40\%\) 的数据,保证 \(1\leqslant n,k\leqslant 1000\)。
对于 \(60\%\) 的数据,保证 \(1\leqslant k\leqslant 5\times 10^4\)。
对于所有数据,\(1\leqslant v_i\leqslant n\leqslant 10^5\),\(1\leqslant k\leqslant 10^9\)。
信息
- ID
- 1073
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 被复制
- 1
- 上传者