返回信息流给我一上午,如果还给我本地编译器,应该问题不大,半个小时,不是hot100,看到这种描述就头大,更不用说做出来了,
第二题﹣并行编译
笔试使用指南
展示标签
HARD
时间限制:1000ms
空间限制:256M
题目描述
代码工程编译时,需要编译所有的Target完成整个工程的编译,但是Target之间往往存在单向的依赖关系,当前Target依赖的所有Target完成编译后才能正常编译,并且在一个线程上编译一个Target 时无法暂停或者中断,只能等待其编译完成,之后才能在该线程上继续编译其它Target。
为了加快编译速度,IDE会利用CPU多线程并行特性,并行调度编译这些Target。
现在有个工程有N个Target,你有一个双线程的 CPU 可用于编译,你能帮忙安排一个编译调度方案以最快的速度完成工程的编译,并计算出最短的耗时吗?
输入描述
第一行输入N,K(1≤N≤10,0≤K≤50),表示有N个Target需要编译,有K个依赖关系。接下来 N行,每行输入一个数字Wi(1≤W≤100),表示第i 个Target编译需要耗费的时间。接下来 K行,每行输入i,j(1≤i,j≤N,i≠j),表示第j个Target依赖第i个Target。输出描述
输出一行一个数字 T,表示最快完成工程编译的时间,如果无法完成工程编译,则输出 -1。
样例1
输入
32
复制
12
23
输出
复制
6
样例解释
由于1→2→3存在链式依赖,无法并行,所以完全串行编译需要 4+3+2=9 单位时间。样例2
输入
复制
43
4
42
43
21
输出
10
复制
2
53
432
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #8872160同步于 2026/5/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖
像这种题题目都读不懂的话是不是不适合大厂
IWhisper#129
2026/5/20镜像同步16 回复
订阅后,新回复会通过你的通知中心匿名送达。
16 条回复
同时存在多个入度为0的点的时候,不能随便选的,感觉这数据规模直接dfs就好了
【 在 IWhisper#646 的大作中提到: 】
: 用拓扑排序吗
不行吧,这个结构有依赖关系,不能当作树来dfs
【 在 IWhisper#117 的大作中提到: 】
: 同时存在多个入度为0的点的时候,不能随便选的,感觉这数据规模直接dfs就好了
看半天没看出怎么做,双线程+依赖关系多对多,也没法建树。我的话最多就只能靠题目的限制条件来摸鱼,target最多只有10,就按照2个线程分配1/9,2/8,3/7,4/6,5/5个target进行遍历,然后target的顺序再枚举遍历一遍,最多根据依赖关系剪枝掉一部分内容。然后目前被锁住的target就让他被阻塞直到可以运行。全部遍历一遍看最终耗时
“我们招实习生要求有一段实习”
“我这就是来实习的”
“可前提是你得有一段实习”
“那我怎么找到这段实习呢?”
“找一段实习呀”
【 在 IWhisper#129 的大作中提到: 】
: 感觉,现在找工作就是一个,赢者通吃,菜一点的只能赌一个方向,面面俱到只会什么都得不到,的局面
: