题库/X0020

#X0020. [CSP-X2022 山东] 摧毁

    传统题 难度: 进阶 标签>CSP-X频次统计与桶计数贪心选择与适用条件
时间限制2000 ms
内存限制512 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

X0020 · [CSP-X2022 山东] 摧毁

退出在线编程模式
进阶 读懂题意,让每一次思考成为成长。
时间限制2000 ms
内存限制512 MiB
通过率—0 / 0 次提交

题目描述

坐地日行八万里,巡天遥看一千河。

2077 年,人类不仅仅是赛博科技得到了发展,太空技术也已经得到了极大的发展。地球的不同外轨道上已经充斥着各种功能用途的人造卫星。因为一个轨道上的卫星数量是有上限的,且卫星更新换代速度很快,如果想要发射新的卫星,需要把所有旧的卫星摧毁。

人类有两种不同的武器可以摧毁卫星,具体如下(其中 PW\rm PW 为新的能量单位):

  1. 使用定点激光武器花费 1 PW1\ \rm{PW} 的代价摧毁任意轨道上指定的一个卫星。

  2. 使用脉冲轨道武器花费 c PWc\ \rm{PW} 的代价把某一轨道上的所有卫星摧毁。

现在有 nn 个旧卫星分布在不同的外轨道上,你的任务是摧毁这些旧卫星。给出这 nn 个卫星的轨道编号,求将这些卫星全部摧毁的最小代价是多少?

输入格式

第一行一个正整数 TT,表示测试数据组数。

接下来对于每组测试数据(注意:每组测试数据有 22 行数据,以下共 2T2T 行数据):

第一行两个正整数 nn 和 cc 表示需要摧毁的卫星数量和使用脉冲轨道武器的代价。

第二行 是 x1,x2,x3,⋯ ,xnx_1,x_2,x_3,\cdots, x_n,其中 xix_i 表示第 ii 个卫星的轨道编号。

输出格式

输出 TT 行答案,对于每组测试数据,输出一行一个整数表示摧毁所有卫星的代价。

4
10 1
2 1 4 5 2 4 5 5 1 2
5 2
3 2 1 2 2
2 2
1 1
2 2
1 2
4
4
2
2

说明与数据范围

对于 30%30\% 的数据,$T = 1,1 \le n \le 10,1 \le x_i \le 10,1 \le c \le 10$;

对于 60%60\% 的数据,$1 \le n \le 10^3, 1 \le x_i \le 1000,1 \le c \le 100$;

对于 100%100\% 的数据,$1 \le T \le 10,1 \le n \le 10^6, 1 \le x_i \le 10^6,1 \le c \le 100$,且所有测试数据的 nn 加起来不超过 10610^6。

来源与本地评测说明

来源:洛谷 B4099。题面按来源整理,源题号保留。

本地测试数据自行构造,经过独立 Python 基准、边界对拍及 Linux C++17 沙箱核验,并非洛谷原版完整评测数据。本地训练分值归一为100分。原题提及但未提供的选手目录附件样例不在本地附件中;本页列出的输入输出样例完整保留。

题目信息

#2147
—

暂无提交记录

练习难度 进阶
时间限制
2000ms
内存限制
512MiB
上传者