第十一章 图论

题目描述:

阿里这学期修了计算机组织和架构课程。他了解到指令之间可能存在依赖关系,比如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运行所需的最短时间。

相关推荐
罗湖老棍子8 小时前
【例4-6】香甜的黄油(信息学奥赛一本通- P1345)
算法·图论·dijkstra·floyd·最短路算法·bellman ford
--JR2 天前
015——图(1.图的相关概念与存储)
数据结构·c++·算法·链表·图论
闻缺陷则喜何志丹2 天前
【二分查找 图论】P10206 [JOI 2024 Final] 建设工程 2|普及+
c++·算法·二分查找·图论·洛谷
surtr14 天前
全源最短路封装模板(APSP,Floyd求最小环,Floyd求最短路,Johnson算法)
c++·算法·数学建模·动态规划·图论
surtr15 天前
【算法自用】一些比较有趣的题目
算法·动态规划·概率论·图论
点云SLAM5 天前
BOOS库中Graph模块boost::edge_reverse_t和boost::vertex_color_t解读
数据库·edge·图论·bfs·dfs/拓扑排序·boost库、
STLearner6 天前
AAAI 2026 | 图基础模型(GFM)&文本属性图(TAG)高分论文
人工智能·python·深度学习·神经网络·机器学习·数据挖掘·图论
点云SLAM6 天前
Boost中Graph模块中boost::edge_capacity和boost::edge_capacity_t
数据库·算法·edge·图论·最大团·最大流算法·boost库使用
Bruce_kaizy8 天前
c++图论——生成树之Kruskal&Prim算法
c++·算法·图论
lihihi9 天前
P5182 棋盘覆盖
算法·图论