每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下:
第一行输入三个正整数
代表数组中的元素数量、删除整个数组的花费系数、删除单个元素的花费。
第二行输入
个整数
,表示数组元素。
除此之外,保证所有的
之和不超过
。
对于每一组测试数据,在一行上输出一个整数表示将数组中所有元素全部删除的最小花费。
1 6 3 3 4 5 2 3 1 0
15
若不执行操作一就全部删除,
,花费
;
若执行一次操作一后全部删除,
,花费
;
若执行两次操作一后全部删除,
,花费
;
若执行三次操作一后全部删除,
,花费
;
若执行四次操作一后全部删除,
,花费
;
若执行五次操作一后全部删除,
,花费
;
若执行六次操作一,
,花费
;
T = int(input())
# print('T is ', T)
for _ in range(T):
line2 = [int(i) for i in input().split()]
# print('line2 is ', line2)
n = line2[0]
k = line2[1]
x = line2[2]
# print('n k x is ', n, k, x)
line3 = [int(i) for i in input().split()]
# print('line3 is ', line3)
mex = [0]*len(line3)
min_num = 0
while min_num in set(line3):
min_num += 1
mex[0] = min_num
cost = k*mex[0]
for j in range(1, len(line3)):
if line3[j-1] < min_num and line3[j-1] not in set(line3[j:]):
min_num = line3[j-1]
mex[j] = min_num
else:
mex[j] = min_num
cost = min(cost, j*x + k*mex[j])
print(cost) 正向遍历import sys num = input() num = int(num) for i in range(num): inp = input() inp = inp.split() number = int(inp[0]) allcost = int(inp[1]) cost = int(inp[2]) arr = input() arr = arr.split() for j in range(len(arr)): arr[j] = int(arr[j]) num_set = set(arr) n = len(num_set) for j in range(n + 1): if j not in num_set: mex = j break mincost = allcost * mex for j in range(number): if arr[j] > mex: continue else: num_set = set(arr[j + 1:]) if arr[j] not in num_set: mex = arr[j] fincost = cost * (j + 1) + mex * allcost mincost = min(mincost, fincost) mincost = min(number * cost, mincost) print(mincost)
import sys T=int(input()) def MEX(array): if len(array) == 0: return 0 max_element = max(array) for i in range(max_element+1): if i not in array: nonnegative = i break else: nonnegative = max_element + 1 return nonnegative for i in range(T): cost = 1e25 para = sys.stdin.readline().strip() n,k,x = map(int, para.split()) array = list(map(int, sys.stdin.readline().strip().split())) nonnegative = MEX(array) for j in range(n+1): new_cost = x*j + k * nonnegative if new_cost < cost: cost = new_cost if len(array)!=0: if array[0] < nonnegative: nonnegative = array[0] array.pop(0) print(cost)