美团笔试2
备注
美团笔试每次都能教育人,太难了。
第一题
输入n,k,然后输入n个数字,数字为0代表Alis的房子可能出现在这里,数字非0代表其他的房子(数字的值就是价格),你要买一个房子,然后距离Alis的房子的期望距离最近。
题目出锅了,我暴力枚举,但是一直wa,wa了半个小时了实在是不敢相信,然后切到了第二题,写到一半难受,一想到我连第一题都过不了我就难受,我又来回马枪,杀回第一题,然后还是wa,最后狠心决定把第一题丢了算了,来来回回浪费了不少时间,还是一直没过,最后切完第三题的时候,笔试也快结束了,才发现出现了一个公告,说第一题如果有多个答案输出最小的那个,我把第27行改成<就过了
1 |
|
第二题
给你一个01串,你能删除三个连续的字符,可以无限次操作,问如何操作后让0和1的个数差最大,输出最大的差值。
使用dp即可dp0[x]代表前x个字符0-1最大的差值, dp1[x]代表前x个字符1-0的最大差值。
(果然还是太久没刷题了,都一年多没写过题了,dp方程我推了很久),最开始推出来是这样,然后一直wa27
1 | dp0[i] = max(dp0[i-3],dp0[i-3]+cal(s[i],s[i-1],s[i-2])); |
最后发现正确的转移方程是这个
1 | dp0[i] = max(dp0[i-3], |
1 |
|
第三题
有两个射箭队伍,你是裁判,规定射箭射中后,射击的距离在d之内得1分,在d之外得2分,如何设计d的值,让一个队伍尽可能的领先分数。
暴力枚举d即可,计算得分的时候用upper_bound二分一下
1 |
|
第四题
暴力骗分,没有ac,tle了
1 |
|
第五题
没时间看。。。菜哭了