1 solutions

  • 0
    @ 2025-3-8 0:09:31
    import sys
    sys.setrecursionlimit(10**6)
    
    class Node:
        def __init__(self):
            self.meifangwen = True
            self.the_list = list()
    
    def fun(jiedian, shendu):
        global ans
        global k
        if shendu <= k:
            ans += 1
        jiedian.meifangwen = False
        shiyezi = True
        for xiayijiedian in jiedian.the_list:
            if xiayijiedian.meifangwen:
                shiyezi = False
                fun(xiayijiedian, shendu+1)
        if shiyezi and k > shendu:
            ans += (k - shendu)
    
    n, k = list(map(int, input().split()))
    dictionary = {i: Node() for i in range(1, n+1)}
    
    for _ in range(1, n):
        u, v = list(map(int, input().split()))
        dictionary[u].the_list.append(dictionary[v])
        dictionary[v].the_list.append(dictionary[u])
    
    ans = 0
    fun(dictionary[1], 0)
    print(ans)
    

    题目最大的难点在于Python有递归深度的限制

    • 1

    Information

    ID
    61
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    5
    Tags
    # Submissions
    320
    Accepted
    25
    Uploaded By