博客
关于我
CodeForces - 10A_模拟
阅读量:136 次
发布时间:2019-02-28

本文共 1273 字,大约阅读时间需要 4 分钟。

Tom的笔记本电脑有三种工作状态,每种状态对应不同的功耗。正常模式下,每分钟消耗P1瓦特;如果在T1分钟内没有操作,系统会切换到屏幕保护模式,功耗降为P2瓦特;再过T2分钟后,系统进入睡眠模式,功耗降为P3瓦特。如果在任何一种模式下,Tom再次进行操作,系统会立即切换回正常模式。

Tom的使用时间被分为n个连续的时间段,每个时间段由[l_i, r_i]表示。每个时间段内,Tom都在持续操作笔记本。那么,问题来了:在整个时间区间[l_1, r_n]内,笔记本总共消耗了多少电量?

输入数据包括n、P1、P2、P3、T1、T2这六个整数,其中n表示时间段的数量,P1、P2、P3分别是三个工作状态下的功耗,T1和T2分别是切换到屏幕保护模式和睡眠模式所需的时间。接下来的n行每行包含两个整数l_i和r_i,表示第i个时间段的起始和结束时间。

为了计算总功耗,我们需要处理时间段之间的间隔时间。具体来说,我们需要分析在每两个相邻时间段之间的时间段,以及在最后一个时间段之后的时间段,计算这些间隔时间内笔记本的功耗。

对于每个时间段的开始和结束时间,我们可以计算出在正常模式下的持续时间,以及切换到其他模式的时间。需要注意的是,如果一个间隔时间完全小于T1,那么整个间隔时间都在正常模式下;如果在T1到T1+T2之间,则部分时间在正常模式,部分时间在屏幕保护模式;如果超过T1+T2,则后面的时间全部在睡眠模式。

通过这种方式,我们可以逐步计算出每个时间段和间隔时间内的功耗总和,最终得到整个时间区间内的总功耗。

举个例子,假设n=1,P1=3,P2=2,P3=1,T1=5,T2=100,时间段是[0, 10]。那么,在这个时间段内,笔记本一直处于正常模式,功耗为3瓦特。时间长度是10分钟,总功耗为3*10=30瓦特·分钟。

另一个例子,假设n=2,P1=8,P2=4,P3=2,T1=5,T2=1020,时间段是[0, 100]和[3050, 100]。第一个时间段持续100分钟,功耗为8瓦特·分钟。第二个时间段从3050分钟开始,持续100分钟。在这两个时间段之间的间隔时间是3050-100=2950分钟。我们需要计算这2950分钟内的功耗。

对于2950分钟的间隔时间,首先计算T1=5分钟,超过T1后,系统切换到屏幕保护模式,功耗降为4瓦特·分钟。再过T2=1020分钟后,系统切换到睡眠模式,功耗降为2瓦特·分钟。因此,2950分钟可以分为:

  • 5分钟:正常模式,功耗8瓦特·分钟。
  • 1020分钟:屏幕保护模式,功耗4瓦特·分钟。
  • 1020分钟:睡眠模式,功耗2瓦特·分钟。

总功耗为:85 + 41020 + 2*1020 = 40 + 4080 + 2040 = 6160瓦特·分钟。

再加上两个时间段的功耗,总功耗为:6160 + 8100 + 4100 = 6160 + 800 + 400 = 7360瓦特·分钟。

因此,最终的总功耗为7360瓦特·分钟。

通过这种方式,我们可以准确地计算出笔记本在整个时间区间内的总功耗。

转载地址:http://jeod.baihongyu.com/

你可能感兴趣的文章
Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
查看>>
Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
查看>>
Node.js 异步模式浅析
查看>>
node.js 怎么新建一个站点端口
查看>>
Node.js 文件系统的各种用法和常见场景
查看>>
Node.js 模块系统的原理、使用方式和一些常见的应用场景
查看>>
Node.js 的事件循环(Event Loop)详解
查看>>
node.js 简易聊天室
查看>>
Node.js 线程你理解的可能是错的
查看>>
Node.js 调用微信公众号 API 添加自定义菜单报错的解决方法
查看>>
node.js 配置首页打开页面
查看>>
node.js+react写的一个登录注册 demo测试
查看>>
Node.js中环境变量process.env详解
查看>>
Node.js之async_hooks
查看>>
Node.js初体验
查看>>
Node.js升级工具n
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js卸载超详细步骤(附图文讲解)
查看>>
Node.js基于Express框架搭建一个简单的注册登录Web功能
查看>>
node.js学习之npm 入门 —8.《怎样创建,发布,升级你的npm,node模块》
查看>>