#校招笔试##百度#A卷,选择题不做记录,只做编程题记录。
编程题有点思考量,最终还是写完了,3/3,希望有面试
编程1:
    一个数组,每次可以选择一个元素a[i],拆成两个和为a[i]的正整数x,y
    问最少多少次拆分可以让数组最大值不超过最小值的2倍
    n<=2e5,1<=a[i]<=1e9
解法:
    记录最小值mn,把超过2mn的数字都强制拆成2mn,不足保留余数。这样每次拆分代价就是a[i]/(2mn)-1,如果a[i]无法整除2mn需要多拆一次。
    复杂度O(n)

编程2:
    一个数组,每次可以选择两个下标i,j,如果n/i==n/j(下取整),则可以把a[i]和a[j]同时变成gcd(a[i],a[j])
    令最终数组和最小
    n<=2e5,a[i]<=1e9
解法:
    不妨令n/i(下取整)相同的元素放在一起考虑,他们之间会相互影响,则最小化元素和,就是把每个元素变成他们的公共gcd,计算公共gcd只需要顺序累计gcd即可。
    复杂度O(nloga[i])

编程3:
    一个数组,每次可以交换两个相邻元素,让数组变成单峰序列,求最小交换次数
    n<=5e5,a[i]<=1e9
解法:
    按数值从小到大考虑。最小的数值肯定是排在序列头或者序列尾,可以发现每次考虑完最小元素,剩余元素就变成了一个规模缩小的子问题。只需要每次看把最小元素放在头所需步骤更少,还是放在尾所需步骤更少。另外还需要考虑相同元素的情况。
    先考虑最小元素是单独出现的情况,只需判断元素在原数组里,前面有多少个数字,后面有多少个数字即可。考虑完就把数字从原数组删掉。这里可以用线段树、树状数组、或者提前预处理逆序对也ok
    然后是相同数字如何处理,假设有k个相同的最小元素。
    不妨考虑其中q个放在队头,p个放在队尾。
    很显然我们需要按照这些元素原来的相对顺序,前q个依次放队头,后p个逆序依次放队尾,这样是最优的。
    直到这个顺序就可以枚举多少个放队头,这里预处理每个元素移动到队头队尾所需的步骤,然后用前缀和优化即可。
    最终总复杂度O(nlogn)#牛客AI配图神器#
全部评论
实际上 t3 就是 sum min(左边比a_i大的,右边比a_i大的)
4 回复 分享
发布于 2025-10-19 22:07 湖北
为啥我的第一第二题思路是一样的就是不能ac,第一题还显示复杂度超了
2 回复 分享
发布于 2025-10-19 20:29 湖南
不明白,不就是超过2*minval然后进行拆分嘛?最后只有20%,太狠了,竟然3道题都AC了!
1 回复 分享
发布于 2025-10-19 21:02 湖北
欧耶,我见过牢大
点赞 回复 分享
发布于 2025-10-27 14:55 陕西
感觉第一题有问题,如果数组是 [1, 10] 按楼主的思路可以整除应该是 4,但应该是 5
点赞 回复 分享
发布于 2025-10-20 00:01 浙江
为什么测试没问题,一提交通过率就是0,三道题没过一个用例,人麻了
点赞 回复 分享
发布于 2025-10-19 21:18 山东
看来自己和大佬确实有差距
点赞 回复 分享
发布于 2025-10-19 21:09 广东
第一第二题思路都一样就是不对,给佬跪了
点赞 回复 分享
发布于 2025-10-19 21:03 荷兰
只有第一题思路,递归还没写出来。我菜完了。
点赞 回复 分享
发布于 2025-10-19 21:02 湖北
2.1/3,第三题用的是单峰,但过了示例,通过率0%
点赞 回复 分享
发布于 2025-10-19 20:58 广东
有 B 卷的佬咩?写 dp 写了将近200行,复杂度 O(n^3); 具体思路: dp[i][j][cost] 表示考虑了前 i 个对称位置对,其中有 j 个是好对,总共花费了 cost 次翻转操作的方案数。 优化用了滚动数组。 感觉好像想复杂了,有没有其他啥思路了?
点赞 回复 分享
发布于 2025-10-19 20:56 美国
只做出来2个编程题能有面试吗?
点赞 回复 分享
发布于 2025-10-19 20:53 重庆
佬好强,我只做了前两个,思路一样的,第三题拼尽全力无法战胜
点赞 回复 分享
发布于 2025-10-19 20:46 重庆

相关推荐

02-01 12:05
复旦大学 Java
腾讯的提前批大概率应该是没有笔试的,但是这个时候有相当部分的同学简历估计都没有准备好,没准备好的同学也不用急,大部分都是3月之后开,这个时候开的绝大多数都是神仙打架,问的东西也比较难,打算投递的同学也多看下计算机网络和操作系统,腾讯对这部分的知识问的比较多。另外多刷下牛客的热门题库,刷题注意刷ACM模式,和牛客的周赛题,腾讯有的部门会从这里面出原题。我是@程序员花海关注我,带你了解更多校招资讯!
程序员花海:还没有来得及准备的同学可以看下学习路线:https://www.nowcoder.com/discuss/824693499982315520?sourceSSR=users算法题:https://www.nowcoder.com/feed/main/detail/20e7a999fa04485b88340a274411ca0d?sourceSSR=users八股文:https://www.nowcoder.com/discuss/833102362771251200?sourceSSR=users简历书写方式:https://www.nowcoder.com/discuss/839907820706205696?sourceSSR=users都是以前在牛客发的文章~
软开人,秋招你打算投哪些...
点赞 评论 收藏
分享
2025-12-16 17:17
门头沟学院 产品经理
烤点老白薯:他第二句话的潜台词是想让你帮他点个瑞幸或者喜茶啥的
mt对你说过最有启发的一...
点赞 评论 收藏
分享
评论
3
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务