← 返回题库
初级

Forwards on Weibo

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
def solve(nl, data, qcount, qdata):
    n, l = map(int, str(nl).split())
    follows = {}
    for rec in str(data).strip().split(','):
        parts = list(map(int, rec.split()))
        uid, k = parts[0], parts[1]
        follows[uid] = parts[2:2+k]
    from collections import deque
    qcount = int(qcount)
    queries = str(qdata).strip().split(',')
    for i in range(qcount):
        uid = int(queries[i])
        visited = {uid}
        q = deque([(uid, 0)])
        count = 0
        while q:
            node, depth = q.popleft()
            for follower in follows.get(node, []):
                if follower not in visited:
                    visited.add(follower)
                    count += 1
                    if depth + 1 < l:
                        q.append((follower, depth + 1))
        print(count)

示例

输入
solve('7 3', '1 3 2 3 4,2 2 5 6,3 1 7,4 0,5 0,6 0,7 0', 2, '1,2')
期望输出
6
2
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码