当前位置: 首页 > ops >正文

OD 算法题 B卷【文件目录大小】

文章目录

  • 文件目录大小

文件目录大小

  • 一个文件目录的数据格式为:目录id,本目录中文件大小,(子目录id列表),其中目录id唯一,取值在【1,200】,目录中文件大小范围【1,1000】,子目录id列表长度【0,10】;
  • 例子:1 20 (2,3) 表示目录1中的文件总大小为20,有两个子目录,id分别为2和3;
  • 输入一个文件系统中所有的目录信息及待查询的目录id,返回待查询目录及其所有子目录的大小之和;

输入描述:
第一行输入m, n, 分别表示目录的个数及待查询目录id; m在【1,100】,n在【1, 200】;
后续m行,每行为一个目录数据;
输出描述:
待查询目录及其子目录的大小之和;

示例1
输入:
3 1
3 15 (0)
1 20 (2)
2 10 (3)
输出:
45

示例2
输入:
4 2
4 20 ()
5 30 ()
2 10 (4,5)
1 40 ()
输出:
60

python实现

  • DFS,递归函数栈

m, n = list(map(int, input().strip().split()))dir_data = []
for i in range(m):dir_id, dir_size, sub_dir = input().strip().split()digits = []for c in sub_dir.replace("(", "").replace(")", "").split(","):if c.isdigit():digits.append(int(c))dir_data.append([int(dir_id), int(dir_size), digits])  # 如 [[4, 20, []], [5, 30, []], [2, 10, [4, 5]], [1, 40, []]]print(dir_data)
result = 0# DFS 借助栈、函数栈
def dfs(n, dir_data):global resultfor d in dir_data:if d[0] == n:  # 找到目录result += d[1]if not d[2]: # 没有子目录returnfor sub_d in d[2]:dfs(sub_d, dir_data)dfs(n, dir_data)
print(result)
http://www.xdnf.cn/news/10373.html

相关文章:

  • 基于ssm+mysql的大创项目申报管理系统(含LW+PPT+源码+系统演示视频+安装说明)
  • 历年中山大学计算机保研上机真题
  • java swing 晃动鼠标改变背景颜色
  • PySide6 GUI 学习笔记——常用类及控件使用方法(标签控件QLabel)
  • Git初识Git安装
  • Spring Boot,两种配置文件
  • LeetCode 39.组合总和:回溯法与剪枝优化的完美结合
  • CCPC dongbei 2025 F
  • 组件化:软件工程化的基础
  • 接口安全SOAPOpenAPIRESTful分类特征导入项目联动检测
  • 树莓派3B小练习
  • IT技术文章汇总
  • 美业+智能体,解锁行业转化新密码(2/6)
  • 大白话 Seata 分布式事务浅析,详解TCC模式
  • 腾讯位置商业授权行政区划开发指南
  • Codeforces Round 1028 (Div. 2) B. Gellyfish and Baby‘s Breath
  • Nginx反向代理
  • NodeJS全栈开发面试题讲解——P12高性能场景题
  • Chorme如何对于youtube视频进行画中画背景播放?
  • 多模态AI的企业应用场景:视觉+语言模型的商业价值挖掘
  • 8天Python从入门到精通【itheima】-62~63
  • 结合源码分析Redis的内存回收和内存淘汰机制,LRU和LFU是如何进行计算的?
  • 深度学习|pytorch基本运算-乘除法和幂运算
  • 初识PS(Photoshop)
  • 【Oracle】安装单实例
  • 【Go】2、Go语言实战
  • python打卡day42@浙大疏锦行
  • 动态库导出符号与extern “C“
  • 2025年05月总结及随笔之家电询价及以旧换新
  • 剪枝中的 `break` 与 `return` 区别详解