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 AI分析

解题思路

  • 核心目标:通过若干次“把某个数 ai 拆成两个正整数相加”的操作,使数组满足 max(a) ≤ 2 × min(a)。

  • 关键观察:

    • 拆分会让元素变小,但不能让当前最小值变小,否则条件更难满足。因此最优策略是不拆分最小值,并在拆分其他元素时尽量让拆出的每一段都 ≥ 最小值 m。
    • 若数组最小值为 m,只要把每个元素 ai 拆成若干段,使每段都 ≤ 2m 且 ≥ m,就能保证最终整体满足条件,同时不降低 m。
  • 化为计数问题:

P4267.第1题-令人心动

    1000ms Tried: 126 Accepted: 33 Difficulty: 2 所属公司 : 百度
    算法与标签>贪心算法

题目内容

在游戏中,主人公 TkTk Tk有一个长度为{a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​}的数组 ; 他将一个数组称为令人心动,当且仅当该数组的最大值不超过最小值的两倍,即max(a1,...,an)≤2×min(a1,...,an)max(a_1,...,a_n)≤2×min(a_1,...,a_n)max(a1​,...,an​)≤2×min(a1​,...,an​); 为了让自己的数组变为令人心动,他可以进行以下操作多次,直到满足条件:

  • 选择一个元素aia_iai​,并选取两个正整数 x,yx,yx,y满足x+y=aix+y=a_ix+y=ai​ ,将aia_iai​删除,并将x,yx,yx,y插入数组中; 请你计算使数组变为令人心动所需的最少操作次数。

输入描述

第一行输入一个整数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),表示数组中的元素。

输出描述

输出一个整数,表示将数组变为令人心动的最少操作次数。

样例1

输入

3
3 6 13

输出

2

说明

  • 说明 在此样例中,初始数组为 {3,6,133,6,133,6,13},操作方案不唯一;
  • 将 131313 拆分为5 55 和8 88,数组变为{3,6,5,83,6,5,83,6,5,8} ;
  • 将 888 拆分为 44 4和4 44,数组变为{3,6,5,4,43,6,5,4,43,6,5,4,4} ,此时最大值 666 不超过最小值 333 的两倍,满足条件,共需 22 2次操作。

登录后即可使用 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 1, 76ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

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

Forgot password or username?