Google三宗罪,给你难堪!

关于谷歌和百度的争论由来已久,大都是百度的负面新闻,但是谷歌就一定那么完美么?不见得。

一、服务极为不稳定,经常不能访问,即使能访问速度也不容乐观。以谷歌这样的大公司不会因为资金问题不买服务器吧。

二、据报道谷歌要收购奇虎,原3721的老总周鸿祎要接替李开复的位置,让人寒心。

三、不提供mp3下载链接,不适合中国国国情。

细心的同事发现,小 W 最近喜欢乘电梯上上下下,究其原因,也许只有小W自己知道:在电梯里经常可以遇到他心中的女神 PR。 电梯其实是个很暧昧的地方,只有在电梯里,小 W 才有勇气如此近距离接近女神,虽然觉得有点不自在,但次数多了,女神也习惯了小 W 的存在,甚至熟悉到仿佛不说上句话自己也都觉得不合适了。可是,他们的谈话也仅仅限于今天天气不错啊或是你吃了吗之类的,往往在对方微笑点头后就再次陷入难堪的沉默之中。 于是,小 W 便在陪伴女神的同时,也关注着电梯中显示的楼层数字,并且他注意到电梯每向上运行一层需要6秒钟,向下运行一层需要4秒钟,每开门一次需要5秒(如果有人到达才开门),并且每下一个人需要加1秒。 特别指出,电梯最开始在0层,并且最后必须再回到0层才算一趟任务结束。假设在开始的时候已知电梯内的每个人要去的楼层,你能计算出完成本趟任务需要的总时间吗? 这是个很简单的问题,要知道,小 W 已经修炼到快速心算出结果的境界,现在你来编程试试吧! 输入格式 共2行 第1行,一个正整数n,表示乘坐电梯的人数。 第2行,n个正整数,ai​表示第i个人要去的楼层。 对于60%的数据0<n<10^4 对于100%的数据0<n<10^5,0<ai​≤2×10^7。 输出格式 仅1行,一个正整数,表示完成这趟任务需要的时间。 请用stl库相关的知识解决,并且能用c++98版本运行
08-02
为了解决这个问题,我们需要模拟电梯的运行过程。关键点如下: 1. **电梯起始在 0 层**。 2. **电梯每向上运行一层需要 6 秒**,**向下运行一层需要 4 秒**。 3. **每到达一个楼层,如果有人要下电梯,电梯就会开门,耗时 5 秒**,并且每下一个人多加 1 秒。 4. **电梯必须回到 0 层结束任务**。 --- ### 解题思路: - 使用 `map<int, int>` 来统计每个楼层有多少人要下(键为楼层,值为人数)。 - 从低到高遍历这些楼层(电梯升到最高层),记录当前楼层和时间。 - 计算每一层的停靠时间:`5 + count`(有人下才开门,每下一人加 1 秒)。 - 最后电梯回到 0 层,计算下落的时间。 - 注意:电梯不会在无人下时停靠。 --- ### C++98 代码如下: ```cpp #include <iostream> #include <map> #include <vector> using namespace std; int main() { int n; cin >> n; map<int, int> floorMap; // 记录每个楼层有多少人要下 int maxFloor = 0; for (int i = 0; i < n; ++i) { int floor; cin >> floor; floorMap[floor]++; if (floor > maxFloor) maxFloor = floor; } int currentTime = 0; int currentFloor = 0; // 上升阶段 for (map<int, int>::iterator it = floorMap.begin(); it != floorMap.end(); ++it) { int targetFloor = it->first; int people = it->second; // 时间:电梯运行时间 currentTime += (targetFloor - currentFloor) * 6; currentFloor = targetFloor; // 开门时间 + 下人时间 currentTime += 5 + people; } // 回到0层 currentTime += currentFloor * 4; cout << currentTime << endl; return 0; } ``` --- ### 示例输入: ``` 3 5 5 3 ``` ### 示例输出: ``` 74 ``` --- ### 解释: - 第一次去 3 层:时间 = (3-0)*6=18,开门+下人=5+1=6,总时间=24 - 去 5 层:(5-3)*6=12,开门+下人=5+2=7,总时间=24+12+7=43 - 返回0层:5*4=20,总时间=43+20=63 - **加上最后的开门时间?** 不需要,因为题目说明电梯必须回到0层才算结束,但0层是否有人下才决定是否开门。 - 如果题目要求即使没有人也要在0层开门,则需额外加 5 秒。 --- ### 改进建议: - 如果题目要求电梯回到 0 层时必须开门(不管是否有人),则加上 `5` 秒。 - 否则不需要加。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值