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

解题思路

先把题意转成更容易处理的形式。

一次压缩把一段长度为 k (k≥2)k\ (k\ge 2)k (k≥2) 的同字符连续子串压成 111 个新符号,所以:

  • 原长度减少了 k−1k-1k−1
  • 花费为 aka_kak​

P4714.第3题-压缩

    1000ms Tried: 75 Accepted: 19 Difficulty: 8 所属公司 : 阿里
    算法与标签>动态规划

题目内容

给定一个只包含 000 和 111 的字符串 sss,长度为 nnn。你可以进行若干次“分段压缩”操作,每次操作规则如下:

  • 选择一段由相同字符构成的连续子串,其长度为 kkk(k≥2k \ge 2k≥2);
  • 将其整体压缩为一个“特殊字符”(视为长度 111 的新符号,不再属于 0/10/10/1);
  • 一次压缩的代价为 a[k]a[k]a[k];
  • 被压缩过的段不允许再次参与压缩;不同压缩段不能重叠。

压缩与不压缩的段拼接后得到新的字符串,其长度等于“未压缩的原字符数量 + 压缩段的个数”。给定目标上限 mmm,要求将字符串长度压到恰好为 mmm 的同时,使总代价最小。若无法压到长度 mmm,输出 −1-1−1。

输入描述

每个测试文件均包含多组测试数据。第一行输入整数 TTT(1≤T≤1021 \le T \le 10^21≤T≤102)。 对每组数据:

  • 第一行输入两个整数 n,mn,mn,m(1≤n≤5001 \le n \le 5001≤n≤500,1≤m≤n1 \le m \le n1≤m≤n);
  • 第二行输入一个长度为 nnn 的 010101 串 sss;
  • 第三行输入 nnn 个整数 a1,a2,…,ana_1,a_2,\dots,a_na1​,a2​,…,an​(1≤ai≤1091 \le a_i \le 10^91≤ai​≤109),表示压缩长度为 kkk 的段的代价为 aka_kak​。 保证所有测试中 nnn 的总和不超过 100010001000。

输出描述

对每组数据输出一个整数,表示将字符串长度压到 mmm 所需的最小代价;若无解,输出 −1-1−1。

样例1

输入

3
5 3
00111
3 5 7 9 11
4 2
0101
1 1 1 1
6 2
111000
10 2 5 10 20 50

输出

7
-1
10

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


ScanQRCodePrompt

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

Forgot password or username?