6月23日英雄会平台发布了一道难度为超5星的微软比赛题目,截止活动结束共有300多名编程爱好者参与线上答题,而最终通过者仅有7人,通过率仅为2%。为什么成绩如此出人意料?是因为原题的英文描述难以理解?还是题目本身的难度太高让很多人望而生畏知难而退?
为此我们诚邀各路英雄豪杰前来切磋探讨,共同发现:
1. 解题思路:本次大赛一等奖获得者-大连理工大学学生__newSolar,提供两种解题思路; 2. 代码样本:雅虎刷题狂人曹鹏专家的代码将作为样本展示,供学习借鉴; 3.“一起来找茬儿”:在所有答题者中,抽选部分未通过的错误代码,邀你来“找茬”; 题目描述:在微软云计算服务的机房,有很多机器上跑着一个或者多个的虚拟机。在一段时间里,有很多用户会来请求建立虚拟机,或者把虚拟机关闭。这个时候,一个最重要的问题,是如何把用户的请求分配到不同的机器上。这里我们把实际的问题简化成对CPU的申请。
假定有M台机器用来服务用户,我们把机器编号成0到M。每台机器有多个CPU核,我们把核编号为0到Cm。
当用户在申请资源的时候,会生成一个请求 “申请个核”,并且每个请求编号为m如果我们在现有的机器中能找到一台机器能满足,这台机器的空余的连续的核能满足要求的话,就返回作为结果。M是机器的下标,C是申请的第一个核的下标。如果没有找到能满足请求的机器,作为结果。
当用户释放资源的时候,生成一个请求”第m个请求的资源释放”。保证一个请求释放最多一次。如果请求没有满足,忽略释放的请求。
输入
第一行是T, 总共的测试的个数
每个测试,第一行给出M 和Q,机器的总数和请求的个数
接下来是M行给出每一台机器的核数 Ci
接下来Q行给出请求。请求两种格式,
1. A k 表示申请k个核
2. F m 表示释放第m个请求申请的核
输出
对于每一个测试,首先输出
“Case #i:” i是测试的标号,从1开始。
接下来对于所有申请的请求,输出m c 或者-1
-1
[限制条件]
1
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?