【代码随想录算法训练营——Day58】图论——117.软件构建、47. 参加科学大会

卡码网题目链接

https://kamacoder.com/problempage.php?pid=1191

https://kamacoder.com/problempage.php?pid=1047

题解
117.软件构建

(拓扑排序)

代码是完全照着题解的代码写的.

47.参加科学大会

(最短路)

代码

python 复制代码
#117.软件构建
from collections import defaultdict, deque
if __name__ == "__main__":
    n, m = map(int, input().split())
    inDegree = [0] * n
    umap = defaultdict(list)
    result = []
    for _ in range(m):
        s, t = map(int, input().split())
        inDegree[t] += 1
        umap[s].append(t)
    queue = deque()
    for i in range(n):
        if inDegree[i] == 0:
            queue.append(i)
    while queue:
        cur = queue.popleft()
        result.append(cur)
        files = umap[cur]
        for j in files:
            inDegree[j] -= 1
            if(inDegree[j] == 0):
                queue.append(j)
    if len(result) == n:
        for i in range(n - 1):
            print(f"{result[i]} ", end = "")
        print(result[n - 1])
    else:
        print(-1)
python 复制代码
#47.参加科学大会
if __name__ == "__main__":
    n, m = map(int, input().split())
    graph = [[float('inf')] * (n + 1) for _ in range(n + 1)]
    for i in range(m):
        s, e, v = map(int, input().split())
        graph[s][e] = v
    minDist = [float('inf')] * (n + 1)
    visited = [False] * (n + 1)
    start = 1
    end = n
    minDist[start] = 0
    for i in range(1, n + 1):
        minVal = float('inf')
        cur = 1
        for j in range(1, n + 1):
            if visited[j] == False and minDist[j] < minVal:
                minVal = minDist[j]
                cur = j
        visited[cur] = True
        for j in range(1, n + 1):
            if visited[j] == False and graph[cur][j] != float('inf') and minDist[cur] + graph[cur][j] < minDist[j]:
                minDist[j] = minDist[cur] + graph[cur][j]
    if minDist[end] == float('inf'):
        print(-1)
    else:
        print(minDist[end])
相关推荐
88号技师17 分钟前
2026年3月中科院一区SCI-贝塞尔曲线优化算法Bezier curve-based optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
t1987512817 分钟前
三维点云最小二乘拟合MATLAB程序
开发语言·算法·matlab
x_xbx1 小时前
LeetCode:148. 排序链表
算法·leetcode·链表
Darkwanderor1 小时前
三分算法的简单应用
c++·算法·三分法·三分算法
2401_831920741 小时前
分布式系统安全通信
开发语言·c++·算法
WolfGang0073212 小时前
代码随想录算法训练营 Day17 | 二叉树 part07
算法
温九味闻醉2 小时前
关于腾讯广告算法大赛2025项目分析1 - dataset.py
人工智能·算法·机器学习
炽烈小老头2 小时前
【 每天学习一点算法 2026/03/23】数组中的第K个最大元素
学习·算法·排序算法
老鱼说AI2 小时前
大规模并发处理器程序设计(PMPP)讲解(CUDA架构):第四期:计算架构与调度
c语言·深度学习·算法·架构·cuda
月落归舟2 小时前
帮你从算法的角度来认识数组------( 二 )
数据结构·算法·数组