第十一章 图论

题目描述:

阿里这学期修了计算机组织和架构课程。他了解到指令之间可能存在依赖关系,比如WAR(读后写)、WAW、RAW。

如果两个指令之间的距离小于安全距离,则会导致危险,从而可能导致错误的结果。因此,我们需要设计特殊的电路来消除危险。

然而,解决这个问题最简单的方法是添加气泡(无用操作),这意味着浪费时间来确保两条指令之间的距离不小于安全距离。两条指令之间的距离的定义是它们开始时间之间的差异。

现在我们有很多指令,我们知道指令之间的依赖关系和安全距离。我们还有一个非常强大的CPU,具有无限数量的内核,因此您可以同时运行任意数量的指令,而且CPU速度非常快,完成任何指令只需花费1ns。

你的工作是重新排列指令,这样CPU就可以在最短的时间内完成所有指令。

输入:

输入由几个测试用例组成。

第一行有两个整数N,M(N<=1000,M<=10000),表示有N个指令和M个依赖关系。

以下M行,每行包含三个整数X、Y、Z,表示X和Y之间的安全距离为Z,Y应在X之后运行。指令的编号从0到N-1。

输出:

打印一个整数,即CPU运行所需的最短时间。

相关推荐
ohnoooo91 天前
251225 算法2 期末练习
算法·动态规划·图论
修炼地2 天前
代码随想录算法训练营第四十三天 | 图论理论基础、深搜理论基础、卡码网98. 所有可达路径、797. 所有可能的路径、广搜理论基础
算法·深度优先·图论
曲の竹4 天前
最小权顶点覆盖问题和最小权支配集
图论·图搜索算法
旺仔小拳头..4 天前
数据结构(四)————图
图论
点云SLAM5 天前
boost中boost::adjacency_list 与 boost::adjacency_list_traits
数据结构·图论·最大流·boos中图模块·泛型算法·traits 解耦设计·adjacency_list
Bruce_kaizy5 天前
c++图论————最短路之Floyd&Dijkstra算法
c++·算法·图论
xu_yule5 天前
算法基础(图论)—拓扑排序
c++·算法·动态规划·图论·拓扑排序·aov网
Andyshengwx6 天前
图论 最小生成树 MST问题
c++·算法·图论
賬號封禁中miu6 天前
图论之最小生成树
java·数据结构·算法·图论
脑海科技实验室6 天前
Ageing Res Rev:绘制阿尔茨海默病分期进展图:一项利用静息态fMRI和图论的综合性横断面及纵向研究
图论·fmri·阿尔茨海默病