猿辅导 8.1 笔试第二题请教

N = int(input())
awards = []
start = 0
for i in range(N):
    c = list(map(int,input().split()))
    if c[1]!=0:
        c[1] -= 2
    else:
        c[1] = -1
    awards.append(c)

sent = dict()
for i,award in enumerate(awards):
    if award[1] != -1:
        sent[award[1]] = sent.setdefault(award[1],[])
        sent[award[1]].append(i)

last = set()
for i in range(N):
    if i not in sent:
        last.add(i)

res = []
def helper(i):
    if i in last:
        a = awards[i][0]
        res.append(a)
        return a

    son = sent[i]
    a = [helper(j) for j in son]
    b = []
    for ason in a:
        if ason>0:
            b.append(ason)
    if b:
        res.append(awards[i][0]+sum(b))
        return awards[i][0]+sum(b)
    else:
        res.append(awards[i][0])
        return awards[i][0]

helper(start)
# print(res)
print(max(res))
# print(sent)
# print(last)

d
第二题应该是 多叉树 + 回溯
我的代码如上,没有超时但是一个都不对,测试用例对的。请问大佬们哪里错了
#笔试题目#
全部评论

相关推荐

字节一直是我的白月光,考虑到转正还是拒了日常实习。
从明天开始狠狠卷JV...:为什么你释放的offer没流到我头上
点赞 评论 收藏
分享
nus2201602...:兄弟,你这个简历撕了丢了吧,就是一坨,去找几个项目,理解项目流程,看几遍就是你的了,看看八股就去干了,多看看牛客里别人发出来的简历,对着写,你这写的啥啊,纯一坨
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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