腾讯笔试0426

这么多大佬都用的C++吗?
我一个Python 狗来啦,一共375%
1,队列,100%
t = int(input())
for _ in range(t):
    q = int(input())
    list1 = []
    for _ in range(q):
        line = input()
        if line[0:4] == 'PUSH':
            x = int(line.split()[-1])
            list1.append(x)
        if line[0:3] == 'TOP':
            if len(list1): print(list1[0])
            else: print(-1)
        if line[0:3] == 'POP':
            if len(list1): del list1[0]
            else: print(-1)
        if line[0:4] == 'SIZE':
            print(len(list1))
        if line[0:5] == 'CLEAR':
            list1 = []
2,两点距离,0%,暴力竟然没分,因为超时改用贪心也没过
def Distance(a0,a1,b0,b1):             #返回数据类型为float浮点数
    return ((a0-b0)**2+(a1-b1)**2)**0.5

t = int(input())
for _ in range(t):
    n = int(input())
    if n>10**4:
        print("%.3f"%0)
        break
    a_x, a_y, b_x, b_y = [0]*n, [0]*n, [0]*n, [0]*n
    for i in range(n):
        a_x[i], a_y[i] = map(int, input().split())
    for i in range(n):
        b_x[i], b_y[i] = map(int, input().split())
    # print(a_x, a_y)
    res = float('inf')
    # for i in range(n):
    #     for j in range(n):
    #         if abs(a_x[i] - b_x[j]) >= res&nbs***bsp;abs(a_y[i] - b_y[j]) >= res:
    #             continue
    #         res = min(res, Distance(a_x[i], a_y[i], b_x[j], b_y[j]))
    #         if res == 0: break
    #     if res == 0: break
    i, j = 0, 0
    res = Distance(a_x[i], a_y[i], b_x[j], b_y[j])
    while i<n-1 and j<n-1:
        if Distance(a_x[i+1], a_y[i+1], b_x[j], b_y[j]) < res:
            res = Distance(a_x[i+1], a_y[i+1], b_x[j], b_y[j])
            i += 1
            continue
        if Distance(a_x[i], a_y[i], b_x[j+1], b_y[j+1]) < res:
            res = Distance(a_x[i], a_y[i], b_x[j+1], b_y[j+1])
            j += 1
            continue
        i += 1
        j += 1


    print("%.3f"%res)


3,翻牌子,100%,遇到错的就翻,竟然ac了!!!!
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

def change(i,j):
    a[i], b[j] = b[j], a[i]
    a[j], b[i] = b[i], a[j]

def judge(s):
    for i in range(len(s)-1):
        if s[i] > s[i+1]:
            return i
    return -1

# print(judge(a))
res = 0
while judge(a) != -1:
    index = judge(a)
    change(index, index+1)
    res += 1
    if res > n**2:
        res = -1
        break
print(res)


4,队列,75%,说实话没怎么看懂怎么用两个栈去搞,瞎写的有着成绩不错了
n = int(input())
list1 = [0]*10**6
head = 0
tail = 0
for _ in range(n):
    line = input()
    if line[0:3] == 'add':
        x = int(line.split()[-1])
        list1[tail] = x
        tail += 1
    if line[0:4] == 'poll':
        head += 1
    if line[0:4] == 'peek':
        print(list1[head])


5,完全二叉树,100%

def f(i):
    res = 0
    while i:
        res += 1
        i = i >> 1
    return res

q = int(input())
for _ in range(q):
    x, y = map(int, input().split())
    # print(x, y)
    ce = f(x)
    if y >= ce:
        print(-1)
    else:
        for _ in range(ce - y):
            x = x >> 1
        print(x)


#腾讯笔试##笔试题目##腾讯#
全部评论
420,第三题一直往状压dp上想,然后发现交换顺序也得表示,开不了那么大的数组了,心态爆炸写了发dfs搜索拿了20%就交了
点赞 回复 分享
发布于 2020-04-27 10:37
3 题感觉贪心好假,这还能100%😂,感觉如果在cf上就是给同room用来hack涨分的(还是我理解错题意了? 3 10 9 2 9 10 1 10 1 10 9  2 9 2 9 10 1 10 9
点赞 回复 分享
发布于 2020-04-27 10:33
我第一大题和你写的一样,自测也过了,就是最后0%,心态爆炸
点赞 回复 分享
发布于 2020-04-26 23:45
请教一下,第五题的求完全二叉树中某个节点的祖先节点,我是直接用log(x)+1求节点所在层,和你写的f函数有什么不同吗
点赞 回复 分享
发布于 2020-04-26 23:17
第二题好坑啊,一直停在那里,老是0,但是找不到原因。没想到第三题被你这样一说这么简单,我去,我凉凉了
点赞 回复 分享
发布于 2020-04-26 23:03
唉,第二题暴力能拿60的,我想看看有没有100的
点赞 回复 分享
发布于 2020-04-26 22:55
求lz看下我的问题,本地能过但结果0 t = int(input()) ret = [] qq = [] qq.append(0) res = [] for i in range(t):     q = int(input())     qq.append(q)     for _ in range(q):         s = input()         ret.append(s.split()) for i in range(t):     for j in range(qq[i+1]):         if len(ret[j+qq[i]]) == 2:             res.append(ret[j+qq[i]][1])         else :             if ret[j+qq[i]][0] == 'TOP&(5857)#39;:                 if len(res) == 0:                     print(-1)                 else:                     print(res[0])             if ret[j+qq[i]][0] == 'POP&(5858)#39;:                 if len(res) == 0:                     print(-1)                 else:                     res.pop(0)             if ret[j+qq[i]][0] == 'SIZE&(5859)#39;:                 print(len(res))             if ret[j+qq[i]][0] == 'CLEAR&(5860)#39;:                 res = []     res = []
点赞 回复 分享
发布于 2020-04-26 22:52
不错~~
点赞 回复 分享
发布于 2020-04-26 22:45

相关推荐

不愿透露姓名的神秘牛友
11-21 11:29
已编辑
斯卡蒂味的鱼汤:知道你不会来数马,就不捞你😂最近数马疯狂扩招,招聘要求挺低的,你能力肯定够,应该就是因为太强了,知道你不会来才不捞你
投递腾讯云智研发等公司7个岗位
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

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