AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

AcWing 1192. 奖金    原题链接    简单

作者: 作者的头像   不染是非 ,  2025-06-06 18:44:53 · 陕西 ,  所有人可见 ,  阅读 2


0


spfa+差分约束

from collections import deque
n, m = map(int, input().split())
g = [[] for i in range(n + 1)]
for i in range(m):
    a, b = map(int, input().split())
    g[b].append((a, 1))
for i in range(1, n + 1):
    g[0].append((i, 100))
dist = [float('-inf')] * (n + 1)
dist[0] = 0
cnt = [0] * (n + 1)
st = [False] * (n + 1)
def spfa():
    q = deque()
    q.append(0)
    st[0] = True
    while q:
        i = q.popleft()
        st[i] = False
        for j, d in g[i]:
            if dist[j] < dist[i] + d:
                dist[j] = dist[i] + d 
                cnt[j] = cnt[i] + 1 
                if cnt[j] >= n + 1:
                    return True
                if not st[j]:
                    st[j] = True
                    q.append(j)
    return False

if spfa():
    print("Poor Xed")
else:
    print(sum(dist))

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息