【代码随想录算法训练营——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])
相关推荐
深圳市益普科技有限公司3 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法
程序员清风5 小时前
算法题中的边界条件、测试与调试
开发语言·算法·kotlin
炘爚5 小时前
数据结构算法总结
数据结构·python·算法
Dageno_AI5 小时前
ChatGPT 不再引用 Reddit 之后,还值得在 Reddit 上做 AI 可见度吗?
算法
hetao17338375 小时前
2026-10-25 hetao1733837 的刷题记录
c++·算法
Jsundoku6 小时前
第七章 机器学习 -- 其他经典算法
人工智能·算法·机器学习
进击的丸子6 小时前
基于 ArcFace SDK 的跨平台人脸特征值下发、同步以及存储方案
后端·算法·代码规范
见叶之秋6 小时前
【C++】红与黑的边界:红黑树从插入到自检
数据结构·c++·算法·面试
一条闲鱼_mytube7 小时前
分布式 ID 生成方案:雪花算法与号段模式
分布式·算法·wpf
Msir_Modern7 小时前
Noita 元胞沙盒笔记
算法·unity·c#·游戏引擎·元胞自动机