04.24 腾讯笔试-技术研究

# 第一题 33% ,取每次钱最多的方式没想对,有问题
def find_max(n, p):
    # l, r = 0, int(1e7)
    # while l < r:
    #     mid = (l + r) >> 1
    #     if (1 - p) * (n + mid) - n < 0:
    #         l = mid + 1
    #     else:
    #         r = mid - 1
    # return r
    tmp = n / (1 - p) - n
    return tmp - 1

n, m = list(map(int, input().split()))
benjin = n
nums = list(map(float, input().split()))
money = 0
for p in nums:
    cur = find_max(benjin, p)
    money += cur
    benjin += cur
print(int(money + n))
# 第二题 40%  我算的方式错了吗?
c = int(input())
nums = list(map(float, input().split()))
matrix = []
result = [0] * c
for _ in range(c):
    row = list(map(float, input().split()))
    matrix.append(row)
for col in range(c):
    sum_ = 0
    for i in range(c):
        sum_ += nums[i] * matrix[i][col]
    result[col] = sum_
max_index = -1
max_value = float('-inf')
for i, num in enumerate(result):
    if num > max_value:
        max_value = num
        max_index = i
print(max_index)
# 第三题  AC
q = int(input())
Max = 1000
for _ in range(q):
    nums = list(map(int, input().split()))
    a, b, c = nums
    l, r = 0, Max
    while l <= r:
        mid = (l + r) / 2
        result = pow(mid, 3) + a * mid * mid + b * mid - c
        if abs(result) <= 1e-7:
            print(mid)
            break
        elif result > 0:
            r = mid - 0.00000001
        else:
            l = mid + 0.00000001
    if l > r:
        print(mid)
# 第四题 AC
def belong(l, r):
    result = 0
    for num in nums_red:
        if num > r: break
        if l <= num <= r:
            result += 1
    for num in nums_blue:
        if num > r: break
        if l <= num <= r:
            result -= 1
    return result

n, m = list(map(int, input().split()))
nums_red = list(map(int, input().split()))
nums_red.sort()
nums_blue = list(map(int, input().split()))
nums_blue.sort()
first, second, third = 0, 0, 0
q = int(input())
for _ in range(q):
    l, r = list(map(int, input().split()))
    tmp = belong(l, r)
    if tmp == 0:
        second += 1
    elif tmp > 0:
        first += 1
    else:
        third += 1
print(first, second, third)
#笔试题目##笔试时间#
全部评论
第四题数据水了吧,感觉按数据范围这样写肯定超时啊
2 回复 分享
发布于 2022-04-25 00:05
感谢分享
1 回复 分享
发布于 2022-04-24 22:28
第一题取最大值的方程:(当前奖池金额 + x)* p - x = 0。
点赞 回复 分享
发布于 2022-04-25 13:34
第二题跟我一样,应该是矩阵的行和列反了...
点赞 回复 分享
发布于 2022-04-25 10:43

相关推荐

10-14 12:20
门头沟学院 Java
迷茫的大四🐶:摊牌了,我是25届的,你们也不招我
点赞 评论 收藏
分享
||&nbsp;先说下主播个人情况:211本,暑期实习之前有过一段中大厂的后端实习,暑期拿过腾讯的实习offer,综合考虑业务和语言最终去了美团。实习期间体感还是不错的,5月初去的,去了就一直急着要需求做,担心因为没有产出导致转正失败,在第二个星期就和mt透露我希望能够留用。虽然第一个由于美团新人landing的友好性基本没做什么需求,但是后面也写出了小2w行的代码量(不包含单测)。中期经常主动加班赶需求,经常持续一两个星期加班到10点甚至更后面。mt对我确实不错,也是言传身教,实习期间给我讲了很多关于单测,ddd,set化等的理解,也是受益匪浅,此外在做需求的时候,也能看出把比较有含金量的部分交给我做...
菜菜菜小白菜菜菜:我在字节实习了四个月,有转正的压力所以周末大部分也在公司自学,也是因为一些原因转正拖的很久,这个点还没答辩,过段时间才回去答辩。整个不确定性的焦虑贯穿了我的秋招三个月,我也曾经犹豫过是不是应该放弃转正走秋招更快,最后因为沉没成本一直舍不得放弃,前前后后七个月真的挺累的,尤其是没有来字节实习的同学已经校招拿到意向时更加焦虑。这段时间也跟mentor聊了很多次,他告诉我未来工作上或者生活上,比这些更头疼的事情会更多,关键还是要调整好自己的心态。转正没有通过从过程上来看其实跟你自身没太大的关系,拖了三个月不出结果显然是ld的问题,并且今年美团最近的开奖大家似乎都不是很乐观,所以不去也罢。我在字节实习的时候,6月份有一个赶上春招末期的25届同事刚面进来,也拿到了小sp的薪水。不要对这件事有太大的压力,时代的问题罢了
点赞 评论 收藏
分享
评论
5
18
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务