关注
后知后觉,mex的计算那里从后往前计算只需要一个变量保持增长就可以达到O(n)复杂度了😭
import sys
def get_mex(elements):
mex = []
tempmex = 0
tempele = set()
for i in reversed(range(len(elements))):
tempele.add(elements[i])
while tempmex in tempele:
tempmex += 1
mex.append(tempmex)
return reversed(mex)
def calc_min(elements, mex, k, x):
cost = min(x, k*mex[-1])
for i in reversed(range(len(elements)-1)):
cost = min(k*mex[i], x+cost)
return cost
T = int(sys.stdin.readline().strip())
for _ in range(T):
temp = sys.stdin.readline().strip().split()
n,k,x = int(temp[0]), int(temp[1]), int(temp[2])
temp = sys.stdin.readline().strip().split()
elements = [int(i) for i in temp]
mex = get_mex(elements)
result = calc_min(elements, mex, k, x)
print(result)
查看原帖
点赞 评论
相关推荐
07-18 16:12
门头沟学院 Java 点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开提前批了? #
19561次浏览 220人参与
# 除了主业以外,你还有哪些其他收入? #
9639次浏览 170人参与
# 校招阶段,学历VS技术哪个更重要? #
14985次浏览 166人参与
# 实习如何「偷」产出? #
42301次浏览 1033人参与
# 不卡学历的大厂有哪些? #
23176次浏览 176人参与
# 职场新人体验 #
19941次浏览 186人参与
# 实习打杂,要跑路吗 #
16284次浏览 192人参与
# 风评不好的公司,你会去吗? #
49710次浏览 370人参与
# 硬件人求职现状 #
433994次浏览 4539人参与
# 校园里的破防时刻 #
9336次浏览 106人参与
# 社恐入职新公司如何融入团队 #
11519次浏览 62人参与
# 腾讯音乐求职进展汇总 #
97698次浏览 566人参与
# 歌尔求职进展汇总 #
58169次浏览 339人参与
# Offer比较,你最看重什么? #
191174次浏览 1299人参与
# 正在实习的碎碎念 #
1453563次浏览 13466人参与
# 实习时,大家都怎么称呼自己的mentor? #
43574次浏览 273人参与
# 你投递的公司有几家约面了? #
108302次浏览 775人参与
# 摸鱼被leader发现了怎么办 #
61116次浏览 371人参与
# 软开人,秋招你打算投哪些公司呢 #
107989次浏览 978人参与
# 考研可以缓解求职焦虑吗 #
53778次浏览 474人参与