比赛场次 | 596 |
---|---|
比赛名称 | CSP2023-J模拟赛 |
比赛状态 | 已结束比赛成绩 |
开始时间 | 2023-10-20 12:30:00 |
结束时间 | 2023-10-20 14:30:00 |
开放分组 | 全部用户 |
注释介绍 | 16中场次 |
题目名称 | 排列变换 |
---|---|
输入输出 | permutrans.in/out |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试点数 | 20 简单对比 |
用户 | 结果 | 时间 | 内存 | 得分 |
---|
小 x 有一个排列 $p$。小 x 认为,当 $p_i\ge i$ 时,$p_i$ 是一个好数。
定义 $f(p)$ 表示 $p$ 中的好数数量。 小 x 每次可以将 $p$ 中的最后一个数移到最前面,她想用最少的操作次数使得 $f(p)$ 最大,请找出 $f(p)$ 最大值和使得 $f(p)$ 最大的对应操作次数。
形式化题意. 给定一个 $n$ 阶排列 $p[1:n]$,定义 $f(p)=\sum\limits_{i=1}^n [p_i\ge i]$,求最小的 $x$,使得 $p$ 循环右移 $x$ 位后 $f(p)$ 最大。
当且仅当 $1\sim n$ 中的每个数都在 $p$ 中出现一次,$p$ 被称为一个排列。
第一行一个整数 $n$,表示排列大小。
第二行有 $n$ 个整数 $p_1\sim p_n$,表示排列 $p$。
两个整数,分别表示 $f(p)$ 移动后的最大值,和使得 $f(p)$ 最大的位移大小。
7 1 6 2 5 4 3 7
5 4
移动 4 次后,排列变成 $[5, 4, 3, 7, 1, 6, 2]$,其中 $5, 4, 3, 7, 6$ 是好数,故 $f(p)$ 此时为 5.
对于 $50\%$ 的数据,满足 $1\le n\le 5000$。
另有 $15\%$ 的数据,满足 $\forall i\in [1,n],p_i=i$。
对于 $100\%$ 的数据,满足 $1\le n\le 10^6$。
璃月港算法竞赛 T2.