求助,只有58分,剩下的全是WA
查看原帖
求助,只有58分,剩下的全是WA
1178276
Noah_kun楼主2024/5/23 12:31
def lgP4802():
    from functools import lru_cache
    dic={} #d用来存储每个城市到最后一个城市的距离
    n,m=map(int,input().split())
    st=(1<<(n-1))-2
    graph=[[] for _ in range(n)]
    for _ in range(m):
        s,d,l=map(int,input().split())
        if d==n-1:
            dic[s]=l
        else:
            graph[s].append((d,l))
    @lru_cache(None)
    def f(x,st): #i表示当前所处哪个城市,st表示城市参观与否的状态
        if st==0:
            return dic[x] if x in dic else float('-inf')
        ans=float('-inf')
        for y,v in graph[x]:
            if (st>>y)&1==1:
                ans=max(ans,v+f(y,st^(1<<y)))
        return ans
    return f(0,st)
print(lgP4802())
2024/5/23 12:31
加载中...