拼多多笔试 9.14
#笔试##笔试#第一题 签到题 首字符 + 偶数下标字符
第二题 贪心+模拟
求发货最小成本,对每天必须发完的货来说,优先按低价发(也就是在价格低的天发),遍历时按价格升序维护可发包的天,然后模拟即可
维护一个有序set(TreeSet),元素i代表第i天,按发货价格排序。
维护第i天发包裹使用次数ci,
按天遍历,第i天,将i入set,遍历set(发货价格低到高),发货直到发包裹使用次数到x或者第i天包裹已经发完
记录使用的成本,即为结果
第三题
求平衡序列的个数
维护前i项数组和Si(包括0),注意到Si-i=Sj-j表示i~j是平衡序列,使用map统计si-i的次数v,遍历map,对C(v,2) = v*(v-1)/2求和即可
第四题 贪心 + gcd
求x倍下标与y倍小标差的最大值,除去x*y倍数的下标,给x安排大的,给y安排小的即可
对原数组排序,维护前i项数组和S(i),对每个x,y,求最小公倍数 t = x*y/gcd(x,y)
最后结果就是 S(n)-S(n-n/x+n/t)-S(n/y-n/t),/表示整除
#笔试##拼多多-校招##拼多多技术岗##拼多多笔试##牛客AI配图神器#
第二题 贪心+模拟
求发货最小成本,对每天必须发完的货来说,优先按低价发(也就是在价格低的天发),遍历时按价格升序维护可发包的天,然后模拟即可
维护一个有序set(TreeSet),元素i代表第i天,按发货价格排序。
维护第i天发包裹使用次数ci,
按天遍历,第i天,将i入set,遍历set(发货价格低到高),发货直到发包裹使用次数到x或者第i天包裹已经发完
记录使用的成本,即为结果
第三题
求平衡序列的个数
维护前i项数组和Si(包括0),注意到Si-i=Sj-j表示i~j是平衡序列,使用map统计si-i的次数v,遍历map,对C(v,2) = v*(v-1)/2求和即可
第四题 贪心 + gcd
求x倍下标与y倍小标差的最大值,除去x*y倍数的下标,给x安排大的,给y安排小的即可
对原数组排序,维护前i项数组和S(i),对每个x,y,求最小公倍数 t = x*y/gcd(x,y)
最后结果就是 S(n)-S(n-n/x+n/t)-S(n/y-n/t),/表示整除
#笔试##拼多多-校招##拼多多技术岗##拼多多笔试##牛客AI配图神器#
全部评论
第四题这个前缀和是怎么用的,我无法理解,我当时是x选最大的,y选最小的,然后公共部分不选,这样通过率只有20%
第四题直接用自带的lcm函数就行
相关推荐
牛客94167639...:第二题不知道为什么总是0,测试都没问题

点赞 评论 收藏
分享

点赞 评论 收藏
分享