A85658.Alice 的分段游戏
普及+/提高
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定长度为 n 的整数数组 a1,a2,…,an,以及每个位置的颜色 col1,col2,…,coln(颜色编号为 1∼m)。还给定一个目标颜色集合 S⊆{1,2,…,m} 与一个整数 k。
请将数组划分为不超过 k 段的非空连续子段,使得每一段都满足:
- 段内至少包含一个位置,其颜色属于 S;
- 该段元素和不超过某个阈值 X。
在所有可行划分中,最小化阈值 X。记答案为
f=min{X∣存在将数组划分为 ≤k 段的方案,且每段含目标颜色、段和≤X}.
若无论怎样划分都无法满足“每段必须包含目标颜色”的要求(例如整个数组中没有任何颜色属于 S),输出 −1。
输入格式
- 第一行:四个整数 n,m,k,t —— 数组长度、颜色总数、允许的最大段数、目标颜色个数。
- 第二行:n 个整数 a1,a2,…,an。
- 第三行:n 个整数 col1,col2,…,coln。
- 第四行: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≤n≤2×105
- 1≤m≤2×105
- 1≤k≤n
- 1≤t≤m
- 1≤ai≤109
- 1≤coli≤m