滴滴9.8后端Python代码
第一题
二分答案,即二分所需要的天数
def solve(): n, a, b = map(int, input().split()) c = list(map(int, input().split())) l, r = -1, 1 << 64 def check(c, mid): temp = c.copy() res = 0 for i in range(n): temp[i] *= mid res += temp[i] // b return res < a while l < r - 1: mid = (l + r) >> 1 if not check(c, mid): r = mid else: l = mid print(l + 1)
注意一下二分的上界需要设为1e18以上,否则会只过82或91
第二题
拿题感觉是Trie或者字符串哈希,可惜两个我都只会板子并且不会手写(字符串苦手,以前字符串都是队友负责的)
Python纯暴力拿了27,82分做法站内有人发了,原来i in s比s.find(i)慢那么多...然后换Cpp一时间又忘了字符串操作了
#我的求职思考#