自己写:哪几对的先后自由

七个构建任务编号 0~6,(a, b) 表示 a 做完才能做 b。 RE[u][v] 表示从 u 顺着箭头能走到 v。找出所有互相都走不到的点对——这些对的先后没被任何依赖规定。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

构建工具为何先建依赖图

第 1 步:依赖做完的任务同时开工 第 2 步:第 1 轮:A 第 3 步:第 2 轮:B、C 第 4 步:第 3 轮:D 第 5 步:第 4 轮:E 第 6 步:五个任务,四轮做完 A B D E C 1 2 2 3 4 构建工具拿到一堆

开始练习 →

机器不限时总轮数看什么

依赖都做完的任务可以同时开工。这种情况下,总共要几轮取决于【0】。

开始练习 →

再加机器能不能更快

已经是「依赖做完就能开工」了。这时候再加一倍机器,总轮数【0】。

开始练习 →

串行七轮并行要几轮

还是那七个构建任务。这次机器不限:一轮里所有「依赖都做完了」的任务可以同时开工。 下面这段把任务分成一层一层,每一层里的任务可以同时开工。输出串行轮数和并行轮数: #include <algorithm> #include &l

开始练习 →

自己写:把任务分层

还是那七个构建任务。这次机器不限:一轮里所有「依赖都做完了」的任务可以同时开工。 补全分层:整层一起推进,这一层全做完,才轮到下一层。输出每一层各有几个任务。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

自己写:算出并行要几轮

还是那七个构建任务。这次机器不限:一轮里所有「依赖都做完了」的任务可以同时开工。 layers 已经写好了。补全 rounds,输出串行轮数和并行轮数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

砍一条依赖有的省有的白砍

还是那七个构建任务。这次机器不限:一轮里所有「依赖都做完了」的任务可以同时开工。 现在允许你砍掉一条依赖。分别砍掉 1 → 3 和 3 → 4,各输出砍完之后的并行轮数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

每个任务最早第几轮开工

还是那七个构建任务。这次机器不限:一轮里所有「依赖都做完了」的任务可以同时开工。 上一道给的是「每层有几个」,这道要「每个任务在第几层」。按任务编号 0~6 的顺序输出各自最早的开工轮次。 (本题用 g++ -std=c++17 -O0 编

开始练习 →

强连通说的是什么

第 1 步:一张有向图 第 2 步:从 B 走到 C 第 3 步:从 C 走到 F 第 4 步:从 F 走到 E 第 5 步:从 E 走到 B 第 6 步:绕回来了:四个互相可达 第 7 步:A、D 只能单向:各自一组 A B C D E

开始练习 →