0919携程笔试

T1: 一个n行m列的矩阵,用0 - n*m-1填充,从(0, 0)出发,每次移动一步,移动到的位置上可以获取这个点上的数值作为得分,当离开该点后这个点的得分会恢复。求进行k步操作后,最多可以获得多少分。

思路:先走到最后一行,然后往右走,如果可以走到最后一个格子,就在最后一个和倒数第二个之间来回走即可。

T2: 给一个长为n的数组,一个m,一个k,每次操作可以任意选择至少m个数,如果选出来的数最大值-最小值<=k的话,就删掉最小的数。求最后数组最少的剩余元素个数。

思路:排序+滑动窗口

T3: 给定一个数组,可以进行k次操作,每次可以将最多连续l个元素值变为任意值,求操作结束数组最小值是多少。

思路:二分结果即可,样例不强,一开始上来优先队列暴力就过了40

T4: 给定n个员工的出发位置,k个通行证所在位置,一个上班地点,员工只有取得了通行证才可以上班,求所有员工都去上班了的最小时间。

思路:员工位置从小到大排序,通行证位置从小到大排序。显然最大的难题是哪个通行证应该分配给哪个员工。贪心的思路是拿连续的n个通行证。对k做一个n的滑动窗口,然后通行证和员工就一一对应了,然后根据两者的位置和目的地的位置做一下分类讨论即可。
全部评论
t1按这个思路写的但是一直0%还耽误了好多时间
2 回复 分享
发布于 09-19 21:08 陕西
佬,能细说下第3题如何二分吗?没理解
1 回复 分享
发布于 09-19 21:08 陕西
第一题最开始超时,后面改了一下能100:因为路径完全是固定的,所以不不一步一步,直接算一口气走到最后一行或者最后一列,获得的财宝数量用等差数列求和来算。
1 回复 分享
发布于 09-19 22:41 天津
第一题这个思路73%超时了,然后直接分类讨论优化反而只有53%了,不知道哪有问题,太菜了我。
点赞 回复 分享
发布于 09-19 21:12 山西
求问最后一题贪心能过多少啊
点赞 回复 分享
发布于 09-19 21:12 天津
第一题dfs是不是不行啊,只拿了27%
点赞 回复 分享
发布于 09-19 21:14 北京
第四题也还可以用二分+贪心做,逼近一个最小最大时间
点赞 回复 分享
发布于 09-19 21:35 湖北
贪心有点难没想到,其他的还好。两小时四题对我这种菜鸡是比较友好的。😂
点赞 回复 分享
发布于 09-20 02:11 陕西

相关推荐

09-19 12:30
门头沟学院 Java
点赞 评论 收藏
分享
12 16 评论
分享
牛客网
牛客企业服务