310204: CF1799F. Halve or Subtract
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Halve or Subtract
题意翻译
# Halve or Subtract ## 题目描述 给定一个长度为 $n$ 的数列 $ a_1, a_2, \ldots, a_n $ ,一个正整数 $b$ 和两种操作: 1. 选一个 $i$ 满足 $ 1 \le i \le n $ ,把 $ a_i $ 变为 $ \lceil \frac{a_i}{2} \rceil $ 。 2. 选一个 $i$ 满足 $ 1 \le i \le n $ ,把 $ a_i $ 变为 $ \max(a_i - b, 0) $ 。 同时给定两个非负整数 $0 \le k_1, k_2 \le n$, 要求至多进行 $k_1$ 次操作1, $k_2$ 次操作2,同时对于每个元素,每种操作至多进行一次。 求出进行若干次满足条件的操作后 $a_1 + a_2 + \ldots + a_n$ 的最小值。 ## 输入格式 多组数据, 第一行为数据组数 $t$,( $ 1 \le t \le 5000 $ )。 每组数据的第一行有四个整数 $ n $ , $ b $ , $ k_1 $, $ k_2 $ ( $ 1 \le n \le 5000 $ , $ 1 \le b \le 10^9 $ , $ 0 \le k_1, k_2 \le n $ )。 每组数据的第二行有 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $ ( $ 1 \le a_i \le 10^9 $ )。 保证所有数据的 $n$ 之和不超过 $5000$。 ## 输出格式 对于每组数据输出一行一个整数表示 $a_i$ 的和的最小值。题目描述
You have an array of positive integers $ a_1, a_2, \ldots, a_n $ , of length $ n $ . You are also given a positive integer $ b $ . You are allowed to perform the following operations (possibly several) times in any order: 1. Choose some $ 1 \le i \le n $ , and replace $ a_i $ with $ \lceil \frac{a_i}{2} \rceil $ . Here, $ \lceil x \rceil $ denotes the smallest integer not less than $ x $ . 2. Choose some $ 1 \le i \le n $ , and replace $ a_i $ with $ \max(a_i - b, 0) $ . However, you must also follow these rules: - You can perform at most $ k_1 $ operations of type 1 in total. - You can perform at most $ k_2 $ operations of type 2 in total. - For all $ 1 \le i \le n $ , you can perform at most $ 1 $ operation of type 1 on element $ a_i $ . - For all $ 1 \le i \le n $ , you can perform at most $ 1 $ operation of type 2 on element $ a_i $ . The cost of an array is the sum of its elements. Find the minimum cost of $ a $ you can achieve by performing these operations.输入输出格式
输入格式
Input consists of multiple test cases. The first line contains a single integer $ t $ , the number of test cases ( $ 1 \le t \le 5000 $ ). The first line of each test case contains $ n $ , $ b $ , $ k_1 $ , and $ k_2 $ ( $ 1 \le n \le 5000 $ , $ 1 \le b \le 10^9 $ , $ 0 \le k_1, k_2 \le n $ ). The second line of each test case contains $ n $ integers $ a_1, a_2, \ldots, a_n $ describing the array $ a $ ( $ 1 \le a_i \le 10^9 $ ). It is guaranteed the sum of $ n $ over all test cases does not exceed $ 5000 $ .
输出格式
For each test case, print the minimum cost of $ a $ you can achieve by performing the operations.
输入输出样例
输入样例 #1
7
3 2 1 1
9 3 5
2 1 2 0
1000000000 1
5 3 1 1
2 8 3 19 3
6 9 4 2
1 2 3 4 5 6
3 10 3 3
1 2 3
5 1 0 0
999999999 999999999 999999999 999999999 999999999
5 5 4 3
5 9 10 7 4
输出样例 #1
11
500000001
23
6
0
4999999995
6
说明
In the first test case, you can do the following: - Perform operation 2 on element $ a_3 $ . It changes from $ 5 $ to $ 3 $ . - Perform operation 1 on element $ a_1 $ . It changes from $ 9 $ to $ 5 $ . After these operations, the array is $ a = [5, 3, 3] $ has a cost $ 5 + 3 + 3 = 11 $ . We can show that this is the minimum achievable cost. In the second test case, note that we are not allowed to perform operation 1 more than once on $ a_1 $ . So it is optimal to apply operation 1 once to each $ a_1 $ and $ a_2 $ . Alternatively we could apply operation 1 only once to $ a_1 $ , since it has no effect on $ a_2 $ . In the third test case, here is one way to achieve a cost of $ 23 $ : - Apply operation 1 to $ a_4 $ . It changes from $ 19 $ to $ 10 $ . - Apply operation 2 to $ a_4 $ . It changes from $ 10 $ to $ 7 $ . After these operations, $ a = [2, 8, 3, 7, 3] $ . The cost of $ a $ is $ 2 + 8 + 3 + 7 + 3 = 23 $ . We can show that this is the minimum achievable cost.Input
题意翻译
# Halve or Subtract ## 题目描述 给定一个长度为 $n$ 的数列 $ a_1, a_2, \ldots, a_n $ ,一个正整数 $b$ 和两种操作: 1. 选一个 $i$ 满足 $ 1 \le i \le n $ ,把 $ a_i $ 变为 $ \lceil \frac{a_i}{2} \rceil $ 。 2. 选一个 $i$ 满足 $ 1 \le i \le n $ ,把 $ a_i $ 变为 $ \max(a_i - b, 0) $ 。 同时给定两个非负整数 $0 \le k_1, k_2 \le n$, 要求至多进行 $k_1$ 次操作1, $k_2$ 次操作2,同时对于每个元素,每种操作至多进行一次。 求出进行若干次满足条件的操作后 $a_1 + a_2 + \ldots + a_n$ 的最小值。 ## 输入格式 多组数据, 第一行为数据组数 $t$,( $ 1 \le t \le 5000 $ )。 每组数据的第一行有四个整数 $ n $ , $ b $ , $ k_1 $, $ k_2 $ ( $ 1 \le n \le 5000 $ , $ 1 \le b \le 10^9 $ , $ 0 \le k_1, k_2 \le n $ )。 每组数据的第二行有 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $ ( $ 1 \le a_i \le 10^9 $ )。 保证所有数据的 $n$ 之和不超过 $5000$。 ## 输出格式 对于每组数据输出一行一个整数表示 $a_i$ 的和的最小值。Output
**题目大意:**
有一个长度为 $ n $ 的正整数数组 $ a_1, a_2, \ldots, a_n $ 和一个正整数 $ b $。你可以进行以下两种操作,每种操作最多进行 $ k_1 $ 或 $ k_2 $ 次,且每个数组元素至多只能进行一次操作:
1. 选择一个 $ i $ 使得 $ 1 \le i \le n $,并将 $ a_i $ 更改为 $ \lceil \frac{a_i}{2} \rceil $。
2. 选择一个 $ i $ 使得 $ 1 \le i \le n $,并将 $ a_i $ 更改为 $ \max(a_i - b, 0) $。
求出通过这些操作后数组 $ a $ 的和的最小值。
**输入数据格式:**
第一行包含一个整数 $ t $,表示数据组数。
每组数据的第一行包含四个整数 $ n $, $ b $, $ k_1 $, $ k_2 $。
每组数据的第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $。
**输出数据格式:**
对于每组数据输出一行,包含操作后数组 $ a $ 的和的最小值。
**输入输出样例:**
**输入样例 #1:**
```
7
3 2 1 1
9 3 5
2 1 2 0
1000000000 1
5 3 1 1
2 8 3 19 3
6 9 4 2
1 2 3 4 5 6
3 10 3 3
1 2 3
5 1 0 0
999999999 999999999 999999999 999999999 999999999
5 5 4 3
5 9 10 7 4
```
**输出样例 #1:**
```
11
500000001
23
6
0
4999999995
6
```**题目大意:** 有一个长度为 $ n $ 的正整数数组 $ a_1, a_2, \ldots, a_n $ 和一个正整数 $ b $。你可以进行以下两种操作,每种操作最多进行 $ k_1 $ 或 $ k_2 $ 次,且每个数组元素至多只能进行一次操作: 1. 选择一个 $ i $ 使得 $ 1 \le i \le n $,并将 $ a_i $ 更改为 $ \lceil \frac{a_i}{2} \rceil $。 2. 选择一个 $ i $ 使得 $ 1 \le i \le n $,并将 $ a_i $ 更改为 $ \max(a_i - b, 0) $。 求出通过这些操作后数组 $ a $ 的和的最小值。 **输入数据格式:** 第一行包含一个整数 $ t $,表示数据组数。 每组数据的第一行包含四个整数 $ n $, $ b $, $ k_1 $, $ k_2 $。 每组数据的第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $。 **输出数据格式:** 对于每组数据输出一行,包含操作后数组 $ a $ 的和的最小值。 **输入输出样例:** **输入样例 #1:** ``` 7 3 2 1 1 9 3 5 2 1 2 0 1000000000 1 5 3 1 1 2 8 3 19 3 6 9 4 2 1 2 3 4 5 6 3 10 3 3 1 2 3 5 1 0 0 999999999 999999999 999999999 999999999 999999999 5 5 4 3 5 9 10 7 4 ``` **输出样例 #1:** ``` 11 500000001 23 6 0 4999999995 6 ```
有一个长度为 $ n $ 的正整数数组 $ a_1, a_2, \ldots, a_n $ 和一个正整数 $ b $。你可以进行以下两种操作,每种操作最多进行 $ k_1 $ 或 $ k_2 $ 次,且每个数组元素至多只能进行一次操作:
1. 选择一个 $ i $ 使得 $ 1 \le i \le n $,并将 $ a_i $ 更改为 $ \lceil \frac{a_i}{2} \rceil $。
2. 选择一个 $ i $ 使得 $ 1 \le i \le n $,并将 $ a_i $ 更改为 $ \max(a_i - b, 0) $。
求出通过这些操作后数组 $ a $ 的和的最小值。
**输入数据格式:**
第一行包含一个整数 $ t $,表示数据组数。
每组数据的第一行包含四个整数 $ n $, $ b $, $ k_1 $, $ k_2 $。
每组数据的第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $。
**输出数据格式:**
对于每组数据输出一行,包含操作后数组 $ a $ 的和的最小值。
**输入输出样例:**
**输入样例 #1:**
```
7
3 2 1 1
9 3 5
2 1 2 0
1000000000 1
5 3 1 1
2 8 3 19 3
6 9 4 2
1 2 3 4 5 6
3 10 3 3
1 2 3
5 1 0 0
999999999 999999999 999999999 999999999 999999999
5 5 4 3
5 9 10 7 4
```
**输出样例 #1:**
```
11
500000001
23
6
0
4999999995
6
```**题目大意:** 有一个长度为 $ n $ 的正整数数组 $ a_1, a_2, \ldots, a_n $ 和一个正整数 $ b $。你可以进行以下两种操作,每种操作最多进行 $ k_1 $ 或 $ k_2 $ 次,且每个数组元素至多只能进行一次操作: 1. 选择一个 $ i $ 使得 $ 1 \le i \le n $,并将 $ a_i $ 更改为 $ \lceil \frac{a_i}{2} \rceil $。 2. 选择一个 $ i $ 使得 $ 1 \le i \le n $,并将 $ a_i $ 更改为 $ \max(a_i - b, 0) $。 求出通过这些操作后数组 $ a $ 的和的最小值。 **输入数据格式:** 第一行包含一个整数 $ t $,表示数据组数。 每组数据的第一行包含四个整数 $ n $, $ b $, $ k_1 $, $ k_2 $。 每组数据的第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $。 **输出数据格式:** 对于每组数据输出一行,包含操作后数组 $ a $ 的和的最小值。 **输入输出样例:** **输入样例 #1:** ``` 7 3 2 1 1 9 3 5 2 1 2 0 1000000000 1 5 3 1 1 2 8 3 19 3 6 9 4 2 1 2 3 4 5 6 3 10 3 3 1 2 3 5 1 0 0 999999999 999999999 999999999 999999999 999999999 5 5 4 3 5 9 10 7 4 ``` **输出样例 #1:** ``` 11 500000001 23 6 0 4999999995 6 ```