A7376 | 午枫的小队评分
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
在一次竞赛中,有 $N$ 名选手,每位选手都有两个属性:
- 实力值 $A_i$
- 消耗值 $B_i$
现在需要从这 $N$ 名选手中选出一个大小为 $K$ 的小队 $S$。小队的评分定义为:$\left(\max_{i \in S} A_i\right) \times \left(\sum_{i \in S} B_i\right)$。也就是说,小队的评分等于队伍中最大实力值乘以有成员消耗值之和。
请你选择一个大小为 $K$ 的小队,使得这个评分尽可能小。给定 $T$ 组测试数据,请分别输出每组的答案。
- 实力值 $A_i$
- 消耗值 $B_i$
现在需要从这 $N$ 名选手中选出一个大小为 $K$ 的小队 $S$。小队的评分定义为:$\left(\max_{i \in S} A_i\right) \times \left(\sum_{i \in S} B_i\right)$。也就是说,小队的评分等于队伍中最大实力值乘以有成员消耗值之和。
请你选择一个大小为 $K$ 的小队,使得这个评分尽可能小。给定 $T$ 组测试数据,请分别输出每组的答案。
输入格式
- 第一行输入一个整数 $T$,表示测试数据组数;
- 对于每组测试数据:
- 第一行输入两个整数 $N, K$;
- 第二行输入 $N$ 个整数 $A_1, A_2, \ldots, A_N$;
- 第三行输入 $N$ 个整数 $B_1, B_2, \ldots, B_N$。
- 对于每组测试数据:
- 第一行输入两个整数 $N, K$;
- 第二行输入 $N$ 个整数 $A_1, A_2, \ldots, A_N$;
- 第三行输入 $N$ 个整数 $B_1, B_2, \ldots, B_N$。
输出格式
输出 $T$ 行,每行一个整数,表示对应测试数据的最小评分。
输入输出样例
输入 #1
3 3 2 3 7 6 9 2 4 5 3 6 4 1 5 9 8 6 5 1 7 10 6 61 95 61 57 69 49 46 47 14 43 39 79 48 92 90 76 30 16 30 94
输出 #1
42 60 14579
解释说明
对于第一组数据:
当选择小队 $S = \{2,3\}$ 时:
- 最大实力值为 $\max(A_2, A_3) = 7$
- 消耗值之和为 $B_2 + B_3 = 2 + 4 = 6$
因此评分为:$7 \times 6 = 42$
可以证明这是所有选择方案中的最小值。
数据范围
对于 $100\%$ 的测试数据,满足:$1 \le T \le 2 \times 10^5$,$1 \le K \le N \le 2 \times 10^5$,$1 \le A_i, B_i \le 10^6$,所有测试用例中 $N$ 的总和不超过 $2 \times 10^5$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?