深信服算法类B卷0914

1. 立方和
hashmap = {i**3 for i in range(1, 1000)}
for _ in range(int(input())):
    number = int(input())
    for i in range(1, number):
        remain = number - i ** 3
        if remain < 0:
            print('No')
            break
        elif remain in hashmap:
            print('Yes')
            break



2. 矿泉水瓶,示例通过了,但提交时通过0%....
有谁知道为啥吗
import math

for _ in range(int(input())):
    x, a, b = map(int, input().split())
    n = math.ceil(x / 500)
    if b >= 3 * a:
        money = n * a
    else:
        money = (n // 3) * b + (n % 3) * a
    print(money)

错误原因:最后剩下的部分应该是
min((n % 3) * a, b)
而非
(n % 3) * a
修正后的代码:
import math

for _ in range(int(input())):
    x, a, b = map(int, input().split())
    n = math.ceil(x / 500)
    if b >= 3 * a:
        money = n * a
    else:
        money = (n // 3) * b + min((n % 3) * a, b)
    print(money)






3. 求环的个数
for _ in range(int(input())):
    N = int(input())
    a = [int(x) for x in input().split()]
    amap = dict(enumerate(a, start=1))
    loop_count = 0
    while amap:
        tmp = {}
        k, v = amap.popitem()
        while v not in tmp:
            tmp[k] = v
            if v in tmp:
                break
            else:
                k, v = v, amap.pop(v)
        loop_count += 1
    if loop_count == 1:
        print(0)
    elif loop_count > 1:
        print(loop_count)





#深信服笔试题#
全部评论
感谢分享,不知道后面他们会重新出题不
点赞 回复 分享
发布于 2022-10-04 13:56 山西

相关推荐

霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
评论
点赞
4
分享
牛客网
牛客企业服务