<span>python(not pypy), dfs, thread?</span>

https://codeforces.com/contest/1336/problem/A

import sys
import threading
from collections import defaultdict
sys.setrecursionlimit(10**6)
threading.stack_size(10**8)
input = sys.stdin.readline

B = []
A = defaultdict(list)


def dfs(now, fa, depth):
    son = 1
    for to in A[now]:
        if to != fa:
            son += dfs(to, now, depth + 1)
    B.append(depth - son)
    return son


def main():
    n, m = map(int, input().split())
    for i in range(n - 1):
        x, y = map(int, input().split())
        x -= 1
        y -= 1
        A[x].append(y)
        A[y].append(x)
    dfs(0, -1, 1)
    print(sum(sorted(B, reverse=True)[:m]))


t = threading.Thread(target=main)
t.start()
t.join()

全部评论

相关推荐

程序员牛肉:你这其实一点都没包装,标准的流水线产品。 实习现在不一定能解决你的问题,你太浮躁了。你看了多少源码?看了多少技术博客?真的没必要这么浮躁的着急找实习,沉下心来学习
投递实习岗位前的准备
点赞 评论 收藏
分享
12-24 14:26
东北大学 Java
一只乌鸦:重邮+东北,好经典的学校
最后再改一次简历
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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