华为笔试9.17
第一题:找到某个数前面最靠近它的并小于等于它的数
解法:单调栈模板
结果:100%
第二题:多项式计算
解法:模拟...
结果:75%,乘法RE
第三题:如果货车载重量不小于货物,则能运载1个货物;货车还能扩容,即在货车上加装1个集装箱,能增大载重量,但最多仍然只能运载1个货物。货车/集装箱/货物数量<=5000;载重量/货物重量<=1e9;给出m个货物重量,n个货车载重量,共x个集装箱,每个集装箱能增加载重量y,问最多能载多少个货物。
解法:贪心+二分
首先升序排序货物,肯定先载轻的
将货车载重量存在set中,枚举货物重量。1.若最小载重量已可载此货物,则用最小载重量的货车;2. 二分找到大于等于货物载重量的货车car1,再二分找到大于等于货物重量-y集装箱载重量的货车car2,比较一下【car1的载重量】和【car2载重量+y】,哪个更小就用哪个,留着更大的后面用。
结果:65%,样例都没过,可能哪里打错了,但没时间修改了。


解法:单调栈模板
结果:100%
第二题:多项式计算
解法:模拟...
结果:75%,乘法RE
第三题:如果货车载重量不小于货物,则能运载1个货物;货车还能扩容,即在货车上加装1个集装箱,能增大载重量,但最多仍然只能运载1个货物。货车/集装箱/货物数量<=5000;载重量/货物重量<=1e9;给出m个货物重量,n个货车载重量,共x个集装箱,每个集装箱能增加载重量y,问最多能载多少个货物。
解法:贪心+二分
首先升序排序货物,肯定先载轻的
将货车载重量存在set中,枚举货物重量。1.若最小载重量已可载此货物,则用最小载重量的货车;2. 二分找到大于等于货物载重量的货车car1,再二分找到大于等于货物重量-y集装箱载重量的货车car2,比较一下【car1的载重量】和【car2载重量+y】,哪个更小就用哪个,留着更大的后面用。
结果:65%,样例都没过,可能哪里打错了,但没时间修改了。