百度C++笔试

10.15,难度中等。其中数学题和规律题比较多

第一题:给你1-n个数,你能填充k个,如果i被填充且i + 1没有被填充则积分增加1

这题考虑构造最优解法,先间隔填充(n + 1) / 2个,然后反向填充。答案公式为(n + 1) / 2 - (k - (n + 1) / 2) + n % 2 == 0 

第二题:给你一个字符串,执行size次变换,第i次变换将s【i】移动到字符串末尾。问size次变换之后答案是多少

暴力变换时间复杂度过高。这里考虑递归实现分治变换。n最开始为size,每次变换当前n / 2 次,直到n = 1。注意每次要记录起始位置。

第三题:给你n大小的数列,你要做n - 1次变化,每次使得a[i] + (-1 | 1) *a[i + 1]。如{1, 2, 3, 4}, 第一次变化到{1 + 2, 2 - 3, 3 + 4}。

这题玩弄玩弄样例,发现n为偶数具备明显规律。当n为偶数时,满足最后两项的和为间隔的二项式系数变形。即为a[1] + C(n / 2, 1) * a[3] + C(n / 2, 2) * a[5] .... + C(n / 2, n / 2) a[n]。而n为奇数时直接变化成偶数即可。不记得怎么写C的预处理了,直接交卷了
#百度求职进展汇总##百度##笔试##你都收到了哪些公司的感谢信?#
全部评论
佬,你第三题A了嘛?
点赞 回复 分享
发布于 10-15 21:20 山东
哇靠,怪不得不会做第三题。找出公式之后还得求组合数,而且组合数普通的预处理还不够,这时间限制估计得求逆元。
点赞 回复 分享
发布于 10-16 10:56 陕西
同样第三题暴力拿了20%就溜了
点赞 回复 分享
发布于 10-17 10:14 四川

相关推荐

2 4 评论
分享
牛客网
牛客企业服务