【代码随想录算法训练营——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])
相关推荐
zzzsde8 小时前
【C++】C++11(1):右值引用和移动语义
开发语言·c++·算法
sheeta199811 小时前
LeetCode 每日一题笔记 日期:2025.11.24 题目:1018. 可被5整除的二进制前缀
笔记·算法·leetcode
gfdhy17 小时前
【c++】哈希算法深度解析:实现、核心作用与工业级应用
c语言·开发语言·c++·算法·密码学·哈希算法·哈希
百***060117 小时前
SpringMVC 请求参数接收
前端·javascript·算法
一个不知名程序员www18 小时前
算法学习入门---vector(C++)
c++·算法
云飞云共享云桌面18 小时前
无需配置传统电脑——智能装备工厂10个SolidWorks共享一台工作站
运维·服务器·前端·网络·算法·电脑
福尔摩斯张18 小时前
《C 语言指针从入门到精通:全面笔记 + 实战习题深度解析》(超详细)
linux·运维·服务器·c语言·开发语言·c++·算法
橘颂TA18 小时前
【剑斩OFFER】算法的暴力美学——两整数之和
算法·leetcode·职场和发展
xxxxxxllllllshi19 小时前
【LeetCode Hot100----14-贪心算法(01-05),包含多种方法,详细思路与代码,让你一篇文章看懂所有!】
java·数据结构·算法·leetcode·贪心算法