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

解题思路

  • 我们把每次“相邻合并”看作把数组切成若干段、每段内部合并成一个数(为该段元素和)。
  • 若最终都相等,则必然能把数组划分为连续的 KKK 段,每段和均为同一个值 SSS,且总和 SUM=∑ai=K⋅S\text{SUM}=\sum a_i=K\cdot SSUM=∑ai​=K⋅S。
  • 操作次数 = 初始长度 nnn 减去剩余段数 KKK:最少操作数 =n−K= n-K=n−K。因此问题转化为:最大化可行的段数 KKK。

关键观察:

  1. 第一段是一个前缀,所以段和 SSS 必为某个前缀和;

P4310.第3题-合成新数

    1000ms Tried: 78 Accepted: 26 Difficulty: 5 所属公司 : 拼多多
    算法与标签>贪心算法

题目内容

多多有一个长度为 nnn 从左到右依次排列的数组 a1,a2,...,ana_1,a_2,...,a_na1​,a2​,...,an​ 。

多多可以对这个数组进行任意次操作,每次操作可以选择数组中两个相邻的数,把它们合并成一个新数(新数的值为两数之和),合并后数组长度减少 111 .

多多想知道,最少需要多少次这样的操作,才能让数组中所有数都相等

输入描述

第一行,包含一个正整数 T(1≤T≤3)T(1 ≤T≤3)T(1≤T≤3) 代表测试数据的组数

对于每组测试数据,分别有两行:

第一行,仅有一个正整数 n(1≤n≤105)n(1 ≤n≤ 10^5)n(1≤n≤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

输入

2
4
2 3 3 2
4
10 9 8 7

输出

2
3

说明

对于第一组数据,可以在两次合并操作后,变为数组 [5,5][5,5][5,5]

对于第二组数据,可以在三次合并操作后,变为数组 [34][34][34]

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


ScanQRCodePrompt

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

Forgot password or username?