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

解题思路

给定长度为 n 的数组,需要把它划分为 m 个连续区间,使所有区间的“价格波动值”(区间内最大值减最小值)之和最小。 这是一类典型的“划分型动态规划(Partition DP)”问题。

状态设计

  • 设 dp[i][k] 表示把前 i 个元素划分成 k 个连续区间时的最小代价。
  • 转移:最后一个区间如果是 (j+1 … i),则

P4243.第1题-促销价格波动值

    1000ms Tried: 68 Accepted: 20 Difficulty: 5 所属公司 : 京东
    算法与标签>动态规划

题目内容

某超市有一排 nnn 个连续的货架,每个货架上摆放的商品有一个单价。超市计划将这排货架分成 mmm 个连续的促销区域。

每组区域是连续的货架区间,例如可以是第 2−52-52−5 个货架,但不能是第 2−32-32−3 个和第 555 个货架。

每个促销区域的“价格波动值”定义为该区域内商品单价的最大值减去最小值。特别地,如果单独一个货架成为促销区域,那么它的价格波动值为 000 。

超市希望所有促销区域的价格波动值之和最小,以此吸引更多顾客。请你帮助他们计算将 nnn 个货架分成 mmm 个连续区域后,价格波动值之和的最小值。

输入描述

第一行包含两个整数 nnn 和 mmm ,分别表示货架的总数和要分成的区域数量.

第二行包含 nnn 个整数 aaa ,依次表示从左到右每个货架上商品的单价。 1<=m<=n<=500,1<=ai<=1,000,000,0001<=m<=n<=500,1<=a_i<=1,000,000,0001<=m<=n<=500,1<=ai​<=1,000,000,000.

输出描述

一行,一个整数,表示所有区域的价格波动值之和的最小值.

样例1

输入

4 2
3 1 4 2

输出

3

说明

其中一种可行的方法为:将第一个货架分为一个促销区域,将后三个货架分为一个促销区域。促销区 111 的价格波动值为 000 ,促销区 222 的价格波动值为 333 ,波动值总和为 333 .

可以证明没有其他方案可以使波动值总和更小。

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


ScanQRCodePrompt

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

Forgot password or username?