AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3509. 文件目录大小

中等通过率 65% · 提交 295 · 通过 192
DFSBFS哈希表DFS/BFS

小慕正在管理一个文件系统,其中每个目录的数据格式为:,本目录中文件大小,()。目录id全局唯一,取值范围[1, 200],本目录中文件大小范围[1, 1000],子目录id列表个数[0,10]。例如:1 20 (2,3) 表示目录1中文件总大小是20,有两个子目录,id分别是2和3。现在小慕拿到了这个文件系统中所有目录的信息,以及一个,需要计算并返回该目录及其所有子目录的文件大小之和。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行为两个数字M,N,分别表示目录的个数和待查询的目录id, 1 ≤ M ≤ 100 1 ≤ N ≤ 200 接下来M行,每行为1个目录的数据: 目录id 本目录中文件大小 (子目录id列表) 子目录列表中的子目录id以逗号分隔。

输出描述

待查询目录以及其子目录之和

示例

示例 1

输入

3 1
3 15 ()
1 20 (2)
2 10 (3)

输出

45

说明:目录1大小为20,包含一个子目录2(大小为10),子目录2包含1个子目录3(大小为15),总的大小为20+10+15=45

示例 2

输入

4 2
4 20 ()
5 30 ()
2 10 (4,5)
1 40 ()

输出

60

说明:目录2包含2个子目录4和5,总的大小为10 + 20 + 30 = 60

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
目录树结构示例 目录1 (20) 目录2 (10) 目录3 (15) 目录4 (20) 目录5 (30) 查询目录1时,总和 = 20 + 10 + 15 = 45 查询目录2时,总和 = 10 + 20 + 30 = 60
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「文件目录大小」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。