1608.最优 K 子段

时间限制:9s 内存限制:512MB

给定一个序列 $a_1,a_2,…,a_n$,从中找出恰好 $k$ 个不相交的连续子段,满足每一段的长度都是质数。假设其中第 $i$ 个子段的子段和是 $s_i$,你需要最大化 $min(s_1,s_2,…,s_k)$。

输入格式(从终端/标准输入读取)

第一行包含一个正整数 $T (1≤T≤100)$,表示测试数据的组数。

每组数据第一行包含两个正整数 $n,k (2≤n≤200000, 1≤k≤n)$。

第二行包含 $n$ 个整数 $a_1,a_2,…,a_n (|a_i|≤1000)$。

输入数据保证 $∑n≤10^6$,且每个 $a_i$ 都是在 $[−1000,1000]$ 均匀随机生成得到(样例除外)。

输出格式(输出至终端/标准输出)

对于每组数据输出一行:若存在合法方案,输出一个整数,即 $min(s_1,s_2,…,s_k)$ 的最大可能值;若无解,输出 "impossible"。

输入样例

复制
4
6 1
1 1 4 5 1 4
6 1
-1 -1 -4 -5 -1 -4
6 3
-1 -1 -4 -5 -1 -4
2 2
0 0
 \n
 · \n
 · · · · · \n
 · \n
  ·  ·  ·  ·  ·  \n
 · \n
  ·  ·  ·  ·  ·  \n
 · \n
 · \n

输出样例

复制
15
-2
-9
impossible
  \n
  \n
  \n
          \n
来源: 2024“钉耙编程”中国大学生算法设计超级联赛(4)

提交题解

Please login first.

© 2025 FAQs