华为机试 - 金字塔
admin
2024-02-18 07:27:08
0

目录

题目描述

输入描述

输出描述

用例

题目解析

算法源码


题目描述

微商模式比较典型,下级每赚 100 元就要上交 15 元,给出每个级别的收入,求出金字塔尖上的人收入。

输入描述

比如:

(代理商代号) (上级代理商代号) (代理商赚的钱)

1 0 223
2 0 323
3 2 1203

输出描述

0(金字塔顶代理商)

105 (最终的钱数)

解释:

2的最终收入等于323 + 1203/100*15=323 + 180

0的最终收入等于(323 + 180 + 223)/ 100 * 15 = 105

用例

输入1 0 223
2 0 323
3 2 1203
输出

0

105

说明

题目解析

这道题看上去平平无奇,但是实际操作起来却有点无从下口。

首先,从用例来看,上下级关系,不是连续,比如2的上级不是1,而是0。

因此,我们需要用到输入中的上下级关系。

我的解题思路如下:

将每行输入转为一个数组,数组包含三个要素:[本级id,上级id,本级收入],这样就会得到一个二维数组。

然后对二维数组排序,按照上级id进行降序(因为0是最高级)。

定义一个agent数组,agent[i]代表第i级的收入。

遍历二维数组,根据遍历得到的一维数组:[本级id,上级id,本级收入]

可以得到 agent[上级id] += 本级收入 / 100 * 15,

但是此时 agent[上级id] 可能并未初始化,因此我们需要判断是否需要初始化。

另外,我们还需要注意,遍历到第二个一维数组时,agent[本级id]可能有了下级上交的收入,因此:本级收入 += agent[本级id],当然前提是agent[本级id]有值。

最终我们就可以通过agent[0]获取到金字塔顶级代理的收入了。

算法源码

/* JavaScript Node ACM模式 控制台输入获取 */
const readline = require("readline");const rl = readline.createInterface({input: process.stdin,output: process.stdout,
});const lines = [];
rl.on("line", (line) => {if (line === "") {const arr = lines.map((line) => line.split(" ").map(Number));console.log(0)console.log(getResult(arr));lines.length = 0;} else {lines.push(line);}
});function getResult(arr) {const agent = {};arr.sort((a, b) => b[1] - a[1]).forEach((ele) => {let [id, preId, money] = ele;if (agent[id]) money += agent[id];if (!agent[preId]) agent[preId] = 0;agent[preId] += Math.floor(money / 100) * 15;});return agent[0];
}

相关内容

热门资讯

安卓系统最强定位手机版,最强定... 你有没有想过,在茫茫人海中,如何让你的手机定位功能像侦探一样精准无误?今天,就让我带你一探究竟,揭秘...
安卓运行环境选哪个系统,And... 你有没有想过,你的安卓手机到底是在哪个运行环境下才能发挥出最佳性能呢?这可是个技术活儿,选对了系统,...
zui15系统是安卓系统吗,揭... 亲爱的读者,你是否曾好奇过,那些在手机上运行得风生水起的系统,它们究竟是不是安卓的呢?今天,就让我带...
ios系统和安卓系统权限区别,... 你有没有发现,无论是手机还是平板,我们用的最多的就是那些APP了。而这些APP,它们在手机里可是有着...
荣耀手环6安卓版系统,智能生活... 你有没有注意到,最近你的手腕上是不是多了一抹亮丽的色彩?没错,说的就是荣耀手环6安卓版系统!这款智能...
极品奴隶系统下载安卓版,体验独... 你有没有听说过那个超级火的“极品奴隶系统”安卓版?最近,这款游戏在朋友圈里可是炸开了锅,大家都说它好...
安卓手机苹果系统扣费,揭秘扣费... 你有没有遇到过这种情况?手机里突然多了一笔扣费,而且还是那种你完全没意识到的扣费?尤其是当你用的是安...
安卓系统智能电视刷机,焕新体验 亲爱的电视迷们,你是否曾为你的安卓智能电视的性能所困扰?是不是觉得它运行缓慢,功能受限?别担心,今天...
安卓系统无法安装applica... 最近是不是遇到了安卓系统无法安装application的烦恼?别急,让我来帮你一探究竟,解决这个让人...
怎么取消安卓系统锁屏,解锁锁屏... 手机锁屏功能虽然能保护我们的隐私,但有时候也会让人头疼,比如忘记密码或者想快速查看信息时。那么,怎么...
安卓系统高德怎么下载,轻松获取... 你有没有发现,现在手机上导航软件真是越来越方便了?尤其是安卓系统的用户,高德地图这款神器简直成了出行...
安卓系统的开源部分,开源代码背... 你知道吗?安卓系统,这个在我们手机上无处不在的小家伙,竟然有一部分是开源的!是不是觉得有点神奇?别急...
小米下载安卓13系统,畅享智能... 亲爱的手机控们,你是否已经迫不及待想要体验最新的操作系统呢?没错,我说的就是安卓13系统!而今天,我...
安卓系统如何设置拍月亮,捕捉夜... 月亮,那轮皎洁的夜空明珠,总是让人心生向往。你是否也想用你的安卓手机捕捉到它的美丽瞬间呢?别急,今天...
安卓v8以上系统,探索安卓V8... 你知道吗?最近手机界可是掀起了一股新潮流,那就是安卓V8以上系统。这可不是什么小打小闹,而是实实在在...
安卓系统兼容哪个版本好,哪个版... 你有没有想过,你的安卓手机到底兼容哪个版本的系统最好呢?这可是个技术活儿,得好好研究研究。别急,今天...
安卓平板安装linux桌面系统... 你有没有想过给你的安卓平板来个变身大法?没错,就是给它安装一个Linux桌面系统!想象原本只能刷刷剧...
安卓什么手机系统bug最少,揭... 你有没有发现,用安卓手机的时候,有时候会遇到一些小麻烦,比如系统突然卡顿,或者某个应用突然崩溃,真是...
手机软件安卓下载系统,解锁手机... 你有没有发现,现在的生活越来越离不开手机了?手机里装满了各种各样的软件,让我们的生活变得更加便捷。今...
微软系统和安卓系统的cad软件... 你有没有想过,为什么你的电脑里装的是微软系统,而朋友的手机上却是安卓系统?这背后其实隐藏着一场关于操...