求这道题目的Python解法
查看原帖
求这道题目的Python解法
901149
linyiyi123456楼主2023/11/1 19:04
def max_food_chain(n, m, relationships):
    MOD = 80112002  # 取模的值

    # 创建邻接表
    graph = [[] for _ in range(n + 1)]
    for a, b in relationships:
        graph[b].append(a)

    # 动态规划求解最大食物链数量
    dp = [0] * (n + 1)
    for i in range(1, n + 1):
        if not graph[i]:  # 如果生物i没有捕食者,那么它自己就是一个最大食物链
            dp[i] = 1
        else:
            for j in graph[i]:
                dp[i] += dp[j]
                dp[i] %= MOD

    # 计算最大食物链的数量并取模
    max_chain = sum(dp) % MOD

    return max_chain

# 读取输入
n, m = map(int, input().split())
relationships = []
for _ in range(m):
    a, b = map(int, input().split())
    relationships.append((a, b))

# 求解最大食物链的数量并输出结果
result = max_food_chain(n, m, relationships)
print(result)

2023/11/1 19:04
加载中...