腾讯笔试算法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)






#腾讯2021届暑期实习正式批笔试##腾讯##笔试题目#
全部评论
对不起,第一题我愣是读不懂他的该轮买的药只能该轮使用是什么意思,我真的吐了。。。你第三题快速幂求余别整递归,用一个while写就不会溢出了。。(哦不对,你的**2为什么不在m的头上,在helper头上)
2 回复
分享
发布于 2020-04-26 22:25
我就是那个对不起人的,0,1,1,0,1.第一题没做出来实在太丢脸了。在那边想什么背包,什么dp乱七八糟的。脑子一片打结果断下一题。来你这看看原来这么简单。
2 回复
分享
发布于 2020-04-26 22:25
百信银行
校招火热招聘中
官网直投
我也1 0 0 0 0了,第二题公式啥都算好了,样例也过了,结果0分,我愣是纠结了将近一个小时,后面就没啥时间了😭
1 回复
分享
发布于 2020-04-26 22:28
第2题是不是快速幂啊?
1 回复
分享
发布于 2020-04-26 22:34
0 ac 选手在此,快要自闭了
1 回复
分享
发布于 2020-04-27 09:40
0.3 1 0.7 0.3 1  第一题我搞了半天,太菜了😔
1 回复
分享
发布于 2020-04-27 14:10
楼主,你的代码我不想看了哈,我自己的博客也是用python写的,有些坑应该是回避了,你可以看看https://blog.csdn.net/m0_38065572/article/details/105783418
1 回复
分享
发布于 2020-04-27 18:19
点赞 回复
分享
发布于 2020-04-26 22:23
咱俩题一样 第三题好像是推公式+快速幂,第五题我用并查集过了,第二题第四题不会 第四题样例都过不了感觉没看懂题😆
点赞 回复
分享
发布于 2020-04-26 22:25
0 1 0 0 0😂
点赞 回复
分享
发布于 2020-04-26 22:26
我感觉楼主的思路都很对啊 咋都是0呢
点赞 回复
分享
发布于 2020-04-26 22:27
不瞒你说,我他妈也是a1,第二题死活不过,不知道公式写错了还是咋的。第三题推公式,第五题交并补。
点赞 回复
分享
发布于 2020-04-26 22:32
这套题感觉是给申算法的同学出的 有大佬分到这套题但不是申的算法吗?
点赞 回复
分享
发布于 2020-04-26 22:32
想借楼请问下第一题的问题 我也是判断每个怪是不是值得打来计算,只不过是先把金币换算成血最后再换算回来。。。不知道为什么就一直过不去 哭了😭 import java.util.*; class Main {     public static void main(String args[]) {         Scanner sc = new Scanner(System.in);         int n = sc.nextInt(); // amount of monsters         int m = sc.nextInt(); // how much health each coin can buy         int health = 0;         for (int i=0; i<n; i++){             int n1 = sc.nextInt();             int n2 = sc.nextInt();             if (n2*m > n1) {                 health -= n1;                 health += n2*m;             }         }         int ans = health/m;         System.out.print(Math.max(0, ans));     } }
点赞 回复
分享
发布于 2020-04-26 23:10
1 1 1 0.3 0。。感觉第5题对python不是很友好,用并查集做的超时了,10^7太容易超时了。。哎
点赞 回复
分享
发布于 2020-04-26 23:32
1 1 0.1 0.3 0 第三题后面想到了公式但是没想到快速幂算法 第四题想到用字典但是没a 感觉一般
点赞 回复
分享
发布于 2020-04-26 23:46
1 1 0.3 0.3 0 第三题刚开始用的pow,说超时过了0.3,然后没用pow,自己累乘,每一步都取余,也还是0.3,真的不知道咋办
点赞 回复
分享
发布于 2020-04-27 09:33
五道题很多细节都要注意,楼主已经很厉害了!
点赞 回复
分享
发布于 2020-04-27 14:41
楼主,请问第一题不会出现这种情况吗,就是打完所有c[i] < w[i]*p的怪,剩下的血量可以再打一只不满足c[i] < w[i]*p的怪?
点赞 回复
分享
发布于 2020-04-27 17:10
前3道过了,第四题暴力过了0.3,第五题刚写完,还没测就给我交卷了。非计算机专业,不知道还有没有面试机会。
点赞 回复
分享
发布于 2020-04-27 19:27

相关推荐

8 20 评论
分享
牛客网
牛客企业服务