【笔试题汇总】华为春招笔试题解 2024-4-10

文章讲述了LYA在云服务计费、图片相似度分析以及网络入侵防御中的技术挑战,涉及计费逻辑、特征提取与相似度计算,以及权限管理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2024.04.10-春招第二场

01.LYA 的云服务计费系统

问题描述

LYA 是一家云服务提供商,她需要为客户提供云服务计费功能。现在,她有一份包含多条计费日志的文件,每条日志包含时间戳、客户标识、计费因子和计费时长四个字段。此外,她还有一份计费因子的单价列表。

LYA 需要编写一个程序,根据计费日志和计费因子单价列表,计算每个客户的话单总费用。需要注意的是,如果同一客户在相同时间戳上报了多条相同计费因子的日志,只能计费一次,并且选择先上报的日志进行计费。

输入格式

第一行包含一个正整数 n n n,表示计费日志的条数, 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1n1000

接下来的 n n n 行,每行包含四个字段,分别表示时间戳(长度为 10 10 10 的数字字符串)、客户标识(长度为 1 ∼ 16 1 \sim 16 116 的字符串)、计费因子(长度为 1 ∼ 16 1 \sim 16 116 的字符串)和计费时长(范围为 0 ∼ 100 0 \sim 100 0100 的整数),字段之间用逗号分隔。如果计费因子在单价列表中查不到,则认为其单价为 0 0 0;如果计费时长不在 0 ∼ 100 0 \sim 100 0100 的范围内,则认为计费时长为 0 0 0

接下来一行包含一个正整数 m m m,表示计费因子的数量, 1 ≤ m ≤ 100 1 \leq m \leq 100 1m100

最后的 m m m 行,每行包含两个字段,分别表示计费因子(长度为 1 ∼ 16 1 \sim 16 116 的字符串)和单价(范围为 1 ∼ 100 1 \sim 100 1100 的整数),字段之间用逗号分隔。

输出格式

输出每个客户的话单总费用,每行包含两个字段,分别表示客户标识和话单费用,字段之间用逗号分隔。输出按照客户标识的字典序升序排列。

样例输入

5
1627845600,client1,factorA,10
1627845605,client2,factorB,15
1627845610,client1,factorA,5
1627845615,client1,factorB,8
1627845620,client2,factorB,20
2
factorA,5
factorB,7

样例输出

client1,131
client2,245

数据范围

  • 1 ≤ n ≤ 1000 1 \leq n \leq 1000 1n1000
  • 1 ≤ m ≤ 100 1 \leq m \leq 100 1m100
  • 时间戳是长度为 10 10 10 的数字字符串
  • 客户标识和计费因子是长度为 1 ∼ 16 1 \sim 16 116 的字符串
  • 计费时长的范围为 0 ∼ 100 0 \sim 100 0100
  • 计费因子的单价范围为 1 ∼ 100 1 \sim 100 1100

【题目解析】

本题可以用DFS求解。基本思路如下:

  1. 枚举断开的节点 x x x,将其从 e x p o s e d exposed exposed 中移除。
  2. 对于 e x p o s e d exposed exposed 中的每个节点 u u u,从 u u u 开始DFS搜索所有可达的节点,并记录数量。权限等级初始为 10 10 10
  3. 如果当前节点 u u u 可以访问节点 v v v(即 m a t r i x [ u ] [ v ] matrix[u][v] matrix[u][v] 不为 0 0 0 且不超过当前权限等级),则将 v v v 加入DFS,并将权限等级更新为 m a t r i x [ u ] [ v ] matrix[u][v] matrix[u][v]
  4. 选择最终被入侵节点数量最少的 x x x 作为答案。如有多个,取编号最小的。

cpp

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值