腾讯笔试算法4.26,四个0就是我
腾讯秋招见了!!明明感觉都会,但是啥也做不出,见鬼了!!! 只有时间看4个题!!因为要调那些通过为0的。。。。花了半个小时调,无果,最后1 0 0 0 0
第一题,打怪题 这个不AC对不起人
#coding=utf-8 import sys if __name__ == "__main__": line = sys.stdin.readline().strip() values = list(map(int, line.split())) n,p = values[0],values[1] c,w = [],[] for _ in range(n): line = sys.stdin.readline().strip() values = list(map(int, line.split())) c.append(values[0]) w.append(values[1]) # n,p = 3,2 # c = [1,1,3] # w = [1,10,1] total_cost = 0 total_earn = 0 for i in range(n): if c[i] < w[i]*p: total_cost += c[i] total_earn += w[i] res = total_earn - (total_cost//p) if total_cost % p == 0 else total_earn - (total_cost//p) - 1 print(res)
第二题,计算面积,纯数学,应该分布写出x1,x2,不用自己算出最后表达式!!!我傻了!!最后一秒想到!! 算错了
#coding=utf-8 import sys import numpy as np if __name__ == "__main__": line = sys.stdin.readline().strip() values = list(map(int, line.split())) t = values[0] a,b,c =[],[],[] for _ in range(t): line = sys.stdin.readline().strip() values = list(map(int, line.split())) a.append(values[0]) b.append(values[1]) c.append(values[2]) print(a,b,c) def helper(a,b,c): if a <= 2*b*c : return 0 else: return np.sqrt(4*a*(a-2*b*c))*(5*a*a+2*a*b*c-2*b*b*c*c)/(3*a*b*b*b) for i in range(t): print(helper(a[i],b[i],c[i]))
第三题,求不冲突的种数,反着冲突的减掉,堆栈溢出???0
#coding=utf-8 import sys import numpy as np if __name__ == "__main__": line = sys.stdin.readline().strip() values = list(map(int, line.split())) m,n = values[0],values[1] # res = (m**n - m*(m-1)**(n-1))%100003 def helper(n,m): if n == 1: return m%100003 else: if n & 0x1: return (m%100003)*((helper(n//2,m)**2)%100003) else: return (helper(n//2,m)**2)%100003 res = helper(n,m) - (helper(n-1,m-1)*(m%100003))%100003 if res < 0: res += 100003 print(res)第四题,和谐对数,不知道哪里错了??就是0
#coding=utf-8 import sys import numpy as np if __name__ == "__main__": line = sys.stdin.readline().strip() values = list(map(int, line.split())) n,k = values[0],values[1] #a = [] from collections import defaultdict d = defaultdict(int) for _ in range(n): line = sys.stdin.readline().strip() values = list(map(int, line.split())) #a.append(values) tmp = [] for j in range(1,k): tmp.append(values[j] - values[0]) tmp = tuple(tmp) d[tmp] += 1 # for i in range(n): # tmp = [] # for j in range(1,k): # tmp.append(a[i][j]-a[i][0]) # tmp = tuple(tmp) # d[tmp] += 1 # print(d) seen = set() res = 0 for key in d.keys(): # print(key) seen.add(key) key1 = tuple([-v for v in key]) # print(key1) if key1 in d and key1 not in seen: res += d[key]*d[key1] print(res)