1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol video solution AI分析

思路

  • 关键结论:对前缀 a1,…,aia_1,\dots,a_ia1​,…,ai​ 的元素集合 SiS_iSi​,令

    • Mi=max⁡(Si)M_i=\max(S_i)Mi​=max(Si​)
    • Di=∣Si∣D_i=|S_i|Di​=∣Si​∣(不同元素个数)
  • 因为 mmm 必须满足 m≥Mim\ge M_im≥Mi​,且集合中所有元素都不超过 mmm,所以在任意 m≥Mim\ge M_im≥Mi​ 下,已有的属于 1..m1..m1..m 的不同元素个数就是 DiD_iDi​。要补全为 1..m1..m1..m 的排列,需要插入的数量为 m−Dim-D_im−Di​。当取最小可行的 m=Mim=M_im=Mi​ 时插入数最少。

  • 因而答案为:

P3564.第2题-排列修补

    1000ms Tried: 131 Accepted: 32 Difficulty: 3 所属公司 : 携程
    算法与标签>模拟

题目内容

游游有一个原始排列,但部分元素丢失,剩余元素形成长度为 nnn 的数组{a1,a2,…,ana_1,a_2,…,a_na1​,a2​,…,an​}。

对于每个 1≤i≤n1≤i≤n1≤i≤n ,将前缀 {a1,a2,…,aia_1,a_2,…,a_ia1​,a2​,…,ai​} 看作新的数组,要把它补全成一个排列,至少需要插入多少个元素?换句话说,对于每个 1≤i≤n1≤i≤n1≤i≤n ,考虑由前缀 a1,a2,…,aia_1,a_2,…,a_ia1​,a2​,…,ai​ 构成的元素集合。要将这个集合补全为一个长度为 mmm 的排列 (即包含 1,2,…,m1,2,…,m1,2,…,m ), mmm 的值必须不小于该集合中的任何元素)。为了使插入的元素数量最少,你需要选择一个最优的 mmm 。请问在这种最优选择下,至少需要插入多少个元素?

请输出每个前缀所需插入的最少元素数。

【名词解释】

长度为 nnn 的排列:由 1,2,…,n1,2,…,n1,2,…,n 这 nnn 个整数、按任意顺序组成的数组 (每个整数均恰好出现一次)。例如,{ 2,3,1,5,42,3,1,5,42,3,1,5,4 }是一个长度为 555 的排列,而 {1,2,21,2,21,2,2}和{1,3,41,3,41,3,4}都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述

第一行输入一个整数 n(1≤n≤2×105)n (1≤n≤2×10^5)n(1≤n≤2×105),表示数组的长度;

第二行输入 nnn 个整数 a1,a2,…,an(1≤ai≤109)a_1,a_2,…,a_n(1≤a_i≤10^9)a1​,a2​,…,an​(1≤ai​≤109),表示数组的元素。

输出描述

一行上输出 nnn 个整数,用空格分隔。其中第 iii 个整数表示前缀 {a1,a2,…,aia_1,a_2,…,a_ia1​,a2​,…,ai​}需要插入的最少元素数。

样例1

输入

3
3 1 6

输出

2 1 3

说明

在这个样例中,对于前缀:

  • {333} 最小插入元素数量为 222 ,即插入{1,21,21,2};

  • {3,13,13,1} 最小插入元素数量为 111,即插入{222};

  • {3,1,63,1,63,1,6} 最小插入元素数量为 333 ,即插入{2,4,52,4,52,4,5}。

样例2

输入

5
1 2 3 4 5

输出

0 0 0 0 0

说明

在这个样例中,每个前缀已经是一个排列,无需插入元素。

开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 38ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?