首页 > 试题广场 >

小红闯关

[编程题]小红闯关
  • 热度指数:2242 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\,\,\,\,\,\,\,\,\,\,小红在玩一个游戏,这个游戏有 n 个关卡,通过第 i 个关卡需要消耗 a_i 个单位时间,小红必须按从前往后的顺序通过每一个关卡。
\,\,\,\,\,\,\,\,\,\,每通过 k 个关卡,小红会获得一个跳关道具,跳关道具可以在任意一个关卡使用,使用跳关道具后可以不消耗时间直接通过关卡。
\,\,\,\,\,\,\,\,\,\,小红想知道她通过这 n 个关卡,最少需要多少时间。

输入描述:
\,\,\,\,\,\,\,\,\,\,第一行输入两个整数 n, k\left(1 \leq n, k \leq 10^5\right) 代表关卡数量和获得跳关道具的条件。
\,\,\,\,\,\,\,\,\,\,第二行输入 n 个整数 a_1, a_2, \dots, a_n\left(1 \leq a_i \leq 10^5\right) 代表通过每个关卡需要消耗的时间。


输出描述:
\,\,\,\,\,\,\,\,\,\,在一行上输出一个整数,表示小红通过这 n 个关卡所需的最少时间。
示例1

输入

3 2
1 3 2

输出

4

说明

\,\,\,\,\,\,\,\,\,\,小红通过第二个关卡后获得跳关道具,此时消耗 1+3 单位时间;在第三个关卡使用跳关道具,不再消耗时间。
示例2

输入

6 2
1 1 4 5 1 4

输出

7

说明

\,\,\,\,\,\,\,\,\,\,小红通过第二个关卡后获得第一个跳关道具;
\,\,\,\,\,\,\,\,\,\,在第四个关卡使用第一个跳关道具后得到第二个跳关道具;
\,\,\,\,\,\,\,\,\,\,在第六个关卡使用第二个跳关道具。
示例3

输入

5 1
2 4 5 1 3

输出

2

说明

\,\,\,\,\,\,\,\,\,\,通过第一关后,后面的关卡都可以使用跳关道具。跳关也算一次成功的闯关。
头像 BraveCoder
发表于 2025-09-04 21:32:58
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n 展开全文
头像 丨阿伟丨
发表于 2025-08-28 10:49:00
题目链接 小红闯关 题目描述 小红需要按顺序通过 个关卡。通过第 个关卡需要花费 的时间。 每当小红通过了 个关卡(无论是花费时间还是使用道具),她都会获得一个“跳关道具”。 跳关道具可以用于任何一个关卡,使用后能以 0 时间通过该关卡。 请计算通过所有 个关卡所需的最少总时间。 解题思路 展开全文
头像 Wind_9233
发表于 2025-08-02 21:56:14
#include <iostream> #include <queue> #include<vector> #define int long long using namespace std; signed main() { int n,k;cin> 展开全文
头像 健谈的小学生整顿职场
发表于 2025-07-10 14:14:01
from heapq import heappop, heappush n, k = map(int, input().strip().split()) costs = list(map(int, input().strip().split())) ans = 0 heap = [] for i i 展开全文
头像 Silencer76
发表于 2025-08-09 19:00:26
题目链接 小红闯关 题目描述 小红在玩一个游戏,这个游戏有 个关卡,通过第 个关卡需要消耗 个单位时间。小红必须按从前往后的顺序通过每一个关卡。 每当小红通过 个关卡(无论是付费通关还是使用道具),她都会获得一个跳关道具。跳关道具可以在任意一个关卡使用,使用后可以不消耗时间直接通过关卡。 小 展开全文