微软预科生笔试不完全题解 第一题是树上权值乘积的
第一题:树上最大权值乘积。建树,dfs遍历到叶子时维护答案,如果用回溯法只能12/16,因为负负为正的情况没考虑(当然也可以同时传最小值、最大值回溯)AC
第二题:题目忘了,就是用set维护,不断lower_bound找到题目描述的那个值。按照题目模拟即可。AC
第三题:A,B,2C,2D 构成 X的方案数。注意题目给的是ABCD,但是根据描述,C D要*2。dp[j] = max(dp[j - *]) + 1 (* 为A B 2C 2D)。AC
第四题:小男孩从起点出发到学校,给所有奶茶店的距离,给所有奶茶店可以补充的能量值,给学校的距离,给初始能量值。走1单位消耗1单位能量。问最少买几次饮料可以走到。
用大根堆维护,先尽量走,走过的奶茶店都放进大根堆,走到不能走的时候,将堆顶取出,相当于喝掉,答案++。然而这个算法只能通过9 / 10,不知道有什么问题。
微软的笔试和其他家不一样,写代码必须在他给的页面写不能跳出,有很多小伙伴中招了,大家还是要仔细看邮件呀
#笔试题目##春招##微软#