A5731 | Alice 的分段游戏
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
给定长度为 $n$ 的整数数组 $a_1,a_2,\dots,a_n$,以及每个位置的颜色 $col_1,col_2,\dots,col_n$(颜色编号为 $1\sim m$)。还给定一个目标颜色集合 $S\subseteq\{1,2,\dots,m\}$ 与一个整数 $k$。
请将数组划分为不超过 $k$ 段的非空连续子段,使得每一段都满足:
1. 段内至少包含一个位置,其颜色属于 $S$;
2. 该段元素和不超过某个阈值 $X$。
在所有可行划分中,最小化阈值 $X$。记答案为
$$ f=\min\left\{\,X \,\middle|\, \text{存在将数组划分为}\ \le k\ \text{段的方案,且每段含目标颜色、段和}\le X\right\}. $$
若无论怎样划分都无法满足“每段必须包含目标颜色”的要求(例如整个数组中没有任何颜色属于 $S$),输出 $-1$。
请将数组划分为不超过 $k$ 段的非空连续子段,使得每一段都满足:
1. 段内至少包含一个位置,其颜色属于 $S$;
2. 该段元素和不超过某个阈值 $X$。
在所有可行划分中,最小化阈值 $X$。记答案为
$$ f=\min\left\{\,X \,\middle|\, \text{存在将数组划分为}\ \le k\ \text{段的方案,且每段含目标颜色、段和}\le X\right\}. $$
若无论怎样划分都无法满足“每段必须包含目标颜色”的要求(例如整个数组中没有任何颜色属于 $S$),输出 $-1$。
输入格式
- 第一行:四个整数 $n,m,k,t$ —— 数组长度、颜色总数、允许的最大段数、目标颜色个数。
- 第二行:$n$ 个整数 $a_1,a_2,\dots,a_n$。
- 第三行:$n$ 个整数 $col_1,col_2,\dots,col_n$。
- 第四行:$t$ 个整数,表示目标颜色集合 $S$ 中的颜色编号(可重复,重复无效)。
- 第二行:$n$ 个整数 $a_1,a_2,\dots,a_n$。
- 第三行:$n$ 个整数 $col_1,col_2,\dots,col_n$。
- 第四行:$t$ 个整数,表示目标颜色集合 $S$ 中的颜色编号(可重复,重复无效)。
输出格式
输出一个整数:$f$ 的值;若不存在可行划分,输出 $-1$。
输入输出样例
输入 #1
5 2 2 1 2 3 4 2 1 1 1 2 2 1 1
输出 #1
7
输入 #2
5 2 1 1 1 4 1 1 1 1 1 2 2 2 1
输出 #2
8
- $1\le n\le 2\times 10^5$
- $1\le m\le 2\times 10^5$
- $1\le k\le n$
- $1\le t\le m$
- $1\le a_i\le 10^9$
- $1\le col_i\le m$
- $1\le m\le 2\times 10^5$
- $1\le k\le n$
- $1\le t\le m$
- $1\le a_i\le 10^9$
- $1\le col_i\le m$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?