首页 > 试题广场 >

游游的数组询问

[编程题]游游的数组询问
  • 热度指数:560 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
游游有一个长度为 n 的数组,每个数的权值为它的质因子个数。现在游游想要删除一段长度刚好为 k 的子数组,删除后需要使剩下的数的权值和最大。问这个权值和是多少?

输入描述:
第一行两个整数 n( 1 \leq n \leq 10^5),k(1 \leq k \leq n)
接下来一行 n 个正整数 a_i(1\le a_i \le 10^4)


输出描述:
输出一个整数,表示答案。
示例1

输入

5 2
6 2 4 1 3

输出

4

说明

1没有质因子,权值为0。
2质因子是2,权值为1。
3质因子是3,权值为1。
4质因子是2,权值为1。
6的质因子是2和3,权值为2。
删除子数组 [4,1],剩下的数是6,2,3,权值总和为4。
头像 Undefined_er
发表于 2025-09-09 16:04:45
package main import ( "bufio" "fmt" "os" ) // 计算一个数的质因子个数 func countPrimeFactors(x int) int { if x == 展开全文
头像 丨阿伟丨
发表于 2025-09-11 17:52:26
题目链接 游游的数组询问 题目描述 给定一个长度为 的数组。每个数字的“权值”定义为其不同质因子的数量。 任务是需要从数组中删除一个长度恰好为 的连续子数组,并使得剩余所有数字的权值之和最大。 求解这个最大的权值和。 解题思路 这个问题的目标是“最大化剩余部分的和”,这与“最小化删除部分的和”是 展开全文