塔子哥又在玩游戏了!
给定nnn个关卡,每个关卡BOSS血量为aia_iai,当我们挑战第iii关时,假设我们当前有kkk点血量,如果k>aik\gt a_ik>ai,那么我们会恢复k−aik-a_ik−ai点血,否则会扣除ai−ka_i-kai−k点血。当血量小于0时,游戏失败。求通关的最少初始血量。
显然,在该规则下,我们初始血量越高,通关机会越大,因此初始血量是有单调性的,于是可以考虑二分的做法。
当二分当前初始血量时,可以根据题意O(N)O(N)O(N)的去判断该血量能否通关(根据题意进行模拟即可),因此时间复杂度也是能够接受的。
时间复杂度为O(Nlog(N))O(Nlog(N))O(Nlog(N))。
本题属于以下题库,请选择所需题库进行购买
ScanQRCodePrompt
GoToPasswordLoginPrompt