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

OD B卷 - 实现 【BOSS的收入】

题目

  • 一个分销公司只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级,分销规定:每个月下级分销需将自己的总收入(自己的+下级上交的)每满100元上交15元给自己的上级,现给出一组分销关系和每个分销的收入,请找出boss并计算出这boss的收入。
  • 比如,收入100元上交15元,收入199仍上交15元;

输入描述:
第一行输入关系的总数量N; 给定的数据都是合法的;
第二行输入关系信息,格式:分销ID 上级分销ID 收入
输出描述:
bossID 总收入

示例1:
输入:
5
1 0 100
2 0 200
3 0 300
4 0 200
5 0 200
输出:
0 150

示例2
输入:
3
1 0 223
2 0 323
3 2 1203
输出:
0 105
 

解题代码

方案1:

def calc_money(boss_id, relation):result = 0for r in relation:if r[1] == boss_id:  # 累加下级上交的result += calc_money(r[0], relation) // 100 * 15elif r[0] == boss_id: # 累加自己的钱result += int(r[2])return result# 关系数
n = int(input().strip())sub_id = set() # 存储下级ID
all_id = set() # 存储所有ID
relation = []
for i in range(n):a, b, money = input().strip().split()sub_id.add(a)all_id.add(a)all_id.add(b)relation.append((a, b, money))
# 差集合,获取boss
boss_id = (all_id - sub_id).pop()
# 递归
boss_money = calc_money(boss_id, relation)
print(boss_id + " " + str(boss_money))

方案2:

 
n = int(input())
matrix = [[int(x) for x in input().split(" ")] for i in range(n)]
relations = {}matrix.sort(key=lambda x: -x[1])first = matrix[-1][1]for id, up_id, money in matrix:if relations.get(id) is not None:money += relations[id]if relations.get(up_id) is None:relations[up_id] = 0relations[up_id] += money // 100 * 15
print(str(first) +  str(relations[first])) 

http://www.mrgr.cn/news/78967.html

相关文章:

  • 计算机网络——不同版本的 HTTP 协议
  • 微信小程序踩坑指南(二)<template>和<block>
  • 嵌入式Linux无窗口系统下搭建 Qt 开发环境
  • docker compose 快速搭建 Elasticsearch 单节点测试环境
  • mysql 查询所有的触发器
  • AIGC引领金融大模型革命:未来已来
  • 吉林大学23级数据结构上机实验(第7周)
  • 使用 CFD 仿真进行阀门性能分析:第 II 部分
  • Java 基础面试题
  • Spring入园须知
  • 计算机毕业设计Python+卷积神经网络股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI
  • cf EC 172 C(0->-1 的转化+区间和使用前缀和表示,化简式子)+ D(二维的信息,先对一维排序,另一维看情况分析)
  • C语言:指针与数组
  • playwright 学习复仇记-2 Selector选择器定位元素
  • LearnOpenGL学习(光照 -- 投光物,多光源)
  • Java OOP
  • Spring 中的 @Component 注解
  • golang的wails框架在macos下的问题
  • NViST运行笔记
  • HHO-CNN-BiGRU-Attention哈里斯鹰优化算法卷积神经网络结合双向门控循环单元时间序列预测,含优化前后对比
  • 多模态(Multimodal)通常指的是系统或过程能够处理、整合和理解来自两个或多个不同模式(modality)的信息。
  • C语言——自我介绍_Gitee的基本使用
  • linux(centos) 环境部署,安装JDK,docker(mysql, redis,nginx,minio,nacos)
  • 开发系统准备与开发环境配置总结
  • 计算机网络复习1——导言和概论
  • 【Point-LIO】基于Ubuntu20.04的ROS1平台的Point-LIO部署Mid-360激光雷达