【编程题目 | 100分】 深度学习网络模型的最小时间 [ 2021 秋招考试题 ]


时间限制:C/C++ 1000ms | 其他语言:2000ms

空间限制:C/C++ 262144K | 其他语言:524288K

64bit IO Format:%lld


本题可使用本地IDE编码,不能使用本地已有代码。无跳出限制,

编码后请点击”保存并提交“按钮进行代码提交。


1、一般深度学习网络模型由若干算子组成,为简单起见,假设一个深度学习网络模型是一个有向无环图。

若算子A依赖算子B的输出,则仅当算子B执行完成之后才能执行算子A,没有依赖关系的算子可并行执行。

已知每个算子的执行时间,请计算运行整个网络所需要的最小时间。

请注意:

1)不考虑数据在算子之间的传输时间;

2)第一个算子为输入算子且仅有一个输入算子;

3)算子索引从0开始;

输入描述:

  • 总共输入N+1行,其中N为算子总个数。
  • 第一行输入整数N(N<=100)。
  • 第j(2<=j<=N+1)行输入代表索引为j -2 算子的属性,内容包括:“OpName OpCost NextOp1 NextOp2 … NextOpk”,其中OpName为字符串(不包含空格),
  • 代表算子名;OpCost为正整数,代表该算子运算时间;
  • NextOp1~NextOpk代表该行算子该所指向的下一层算子的索引(算子索引为0~N-1)。

输出描述:

  • 输出为网络模型的最小执行时间

示例

输入

4

softmax 10 1 2

relu 5

conv1 1 3

softmax 2

输出

15


代码实现


C++


#include <bits/stdc++.h>

using namespace std;

vector<vector<int>> matrix;
vector<int> cost;
vector<int> cnt;
vector<bool> visit;
int sum;

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看