AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P4002. 响应报文时间

简单通过率 74% · 提交 336 · 通过 247
位运算模拟数学

1. IGMP协议中,有一个字段称作。HOST收到查询报文,解析出MaxResponseTime字段后,需要在(0, MaxResponseTime]时间(s)内选取随机时间回应一个响应报文。如果在随机时间内收到一个新的查询报文,则会根据两者时间的大小,选取小的一方刷新回应时间。 2. 最大响应时间有如下计算方式: 当 < 128,MaxRespTime = MaxRespCode; 当MaxRespCode ≥ 128,MaxRespTime = () << (); 注:exp为最大响应时间的高5~7位;mant为最大响应时间的低4位。其中接收到的MaxRespCode最大值为255,以上出现所有字段均为无符号数。 3. 现在我们认为HOST收到查询报文时,选取的随机时间必定为最大值。现给出HOST收到查询报文个数C,HOST收到该报文的时间T,以及查询报文的最大响应时间字段值M,请计算出HOST发送响应报文的时间。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行为查询报文个数C,后续每行分别为HOST 收到报文时间 T,及最大响应时间M,以空格分割。

输出描述

HOST发送响应报文的时间。

示例

示例 1

输入

3
0 20
1 10
8 20

输出

11

说明:收到3个报文 第0秒收到第1个报文,响应时间为20秒,则要到0+20=20秒响应 第1秒收到第2个报文,响应时间为10秒,则要到1+10=11秒响应,与上面的报文的响应时间比较获得响应时间最小为11秒 第8秒收到第3个报文,响应时间为20秒,则要到8+20=28秒响应,与第上面的报文的响应时间比较获得响应时间最小为11秒 最终得到最小响应报文时间为11秒

示例 2

输入

2
0 255
200 60

输出

260

说明:收到2个报文。 第0秒收到第1个报文,响应时间为255秒,则要到(15 | 0x10) << (7 + 3) = 31744秒响应(mant = 15,exp =7) 第200秒收到第2个报文,响应时间为60秒,则要到200+60 = 260秒响应,与第上面的报文的响应时间比较获得响应时间最小为260秒 最终得到最小响应报文时间为260秒

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
时间(秒) 0 1 8 11 20 28 报文1 响应时间20秒 报文2 响应时间10秒 报文3 响应时间20秒 最小响应时间11秒
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「响应报文时间」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。