华为机试 - 金字塔
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];
}

相关内容

热门资讯

我来教大家“掼蛋大师辅助器ap... 亲,掼蛋大师这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,掼蛋大师的开挂软件,名...
我来教大家“开心联盟辅助器ap... 您好,开心联盟这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
我来教大家“友愉棋牌辅助器ap... 您好,友愉棋牌这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
我来教大家“全盛棋牌辅助器ap... 亲,全盛棋牌这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,全盛棋牌的开挂软件,名...
我来教大家“情怀三三麻将辅助器... 我来教大家“情怀三三麻将辅助器app官方下载最新版本更新”详细分享开挂一、情怀三三麻将AI软件牌型概...
我来教大家“无锡好运麻将辅助器... 亲,无锡好运麻将这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,无锡好运麻将的开挂...
我来教大家“推筒子辅助器app... 您好,推筒子这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打牌...
我来教大家“比奇堡辅助器app... 我来教大家“比奇堡辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方神...
我来教大家“新兴茶苑辅助器ap... 我来教大家“新兴茶苑辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方...
我来教大家“欢乐互动辅助器ap... 我来教大家“欢乐互动辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方...
我来教大家“东方互娱辅助器ap... 亲,东方互娱这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,东方互娱的开挂软件,名...
我来教大家“天天乐清麻将辅助器... 我来教大家“天天乐清麻将辅助器app官方下载最新版本更新”详细分享开挂一、天天乐清麻将AI软件牌型概...
我来教大家“唐三彩辅助器app... 我来教大家“唐三彩辅助器app官方下载最新版本更新”详细分享开挂一、唐三彩AI软件牌型概率发牌机制”...
我来教大家“Y0辅助器app官... 我来教大家“Y0辅助器app官方下载最新版本更新”详细分享开挂一、Y0AI软件牌型概率发牌机制”必胜...
我来教大家“天天互娱辅助器ap... 亲,天天互娱这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,天天互娱的开挂软件,名...
我来教大家“悟空竞技麻将辅助器... 亲,悟空竞技麻将这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,悟空竞技麻将的开挂...
我来教大家“情怀开化麻将辅助器... 我来教大家“情怀开化麻将辅助器app官方下载最新版本更新”详细分享开挂一、情怀开化麻将AI软件牌型概...
我来教大家“龙炎互娱辅助器ap... 我来教大家“龙炎互娱辅助器app官方下载最新版本更新”详细分享开挂一、龙炎互娱AI软件牌型概率发牌机...
我来教大家“闲逸碰胡辅助器ap... 亲,闲逸碰胡这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,闲逸碰胡的开挂软件,名...
我来教大家“友聚麻将辅助器ap... 我来教大家“友聚麻将辅助器app官方下载最新版本更新”详细分享开挂一、友聚麻将AI软件牌型概率发牌机...