深信服算法类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 山西

相关推荐

昨天 22:55
已编辑
叮咚买菜
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 10人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
点赞 4 评论
分享
牛客网
牛客企业服务