大厂真题 / 蔚来

蔚来 2026-9-11 笔试真题 - 通用岗

本场考试概述

考试时间:2026年9月11日

考试岗位:通用岗

难度评级:简单(针对已收录编程题)

收录范围:考试概述列出 19 道选择题,但可核验正文只有其中 5 道;本文收录这 5 道及两道完整编程题,不补写另外 14 道选择题。

考点分析:选择题涉及多模态对齐、条件概率、Mean Shift 和 Python 下标;两道编程题分别考查单调性二分、排序与前缀和。

建议策略:先把方程的单调性和两人贡献写成数学表达式,再选算法。选择题注意条件概率的条件含义,不要把下标与元素混淆。

选择题:可核验的五道

1. 多模态对齐

某 VLTransformer 仅使用 Cross-Attention 融合图文,未使用 CLIP 风格对比损失。增加融合层数和模态 type-embedding 后,图文对齐效果仍弱于 CLIP。以下哪项最符合题设所指的问题?

  • A. 跨模态注意力层数不足
  • B. 位置编码没有区分模态
  • C. 图像 Patch 未与文本 Token 逐一对齐
  • D. 未用对比损失约束多模态空间

答案:D。 对比目标直接约束匹配图文与不匹配图文的相似度,Cross-Attention 本身不是同一个训练目标。A、B 已被题设排除,CLIP 也不要求 Patch 与 Token 一一对应。这里是在给定选项中选择最符合题意的一项,并非断言所有图文对齐方法都必须采用对比损失。

2. 贝叶斯公式

盒子 A 有 2 红 3 蓝,盒子 B 有 3 红 1 蓝。分别以 $1/3$、$2/3$ 的概率选择 A、B,再从选中的盒子等概率取球。已知取到红球,来自 A 的概率是多少?

  • A. $5/19$
  • B. $19/30$
  • C. $2/9$
  • D. $4/19$

答案:D。 记取到红球为事件 $R$,则

\[P(R)=\frac13\cdot\frac25+\frac23\cdot\frac34=\frac{19}{30}.\]

因此 $P(A\mid R)=(2/15)/(19/30)=4/19$。只计算取到红球的概率,还没有完成条件化。

3. Mean Shift

均值移动算法的核心思想最接近哪项?

  • A. 寻找概率密度的驻点,以密度模式点组织聚类
  • B. 构建 Hessian 矩阵检测局部亮暗关键点
  • C. 每个点先成一类,再不断合并生成层次结构
  • D. 预设 K 个中心,交替分配样本并更新中心

答案:A。 算法反复将当前位置移向核窗口内样本的加权均值,通常向核密度的局部模式移动;同一模式吸引的样本形成一簇。严格说,梯度为零只是驻点条件,不能单凭这一条件就把所有驻点视为密度峰。C 是凝聚式层次聚类,D 是 K-Means;Mean Shift 的关键参数是带宽而非预设簇数。

4. Python 下标

下列程序输出什么?

lists = [1, 2, 3, 4]
tmp = 0
for i, j in enumerate(lists):
    tmp += i * j
print(tmp)
  • A. 30
  • B. None
  • C. 100
  • D. 20

答案:D。 enumerate 默认下标从零开始,累加的是 $0\cdot1+1\cdot2+2\cdot3+3\cdot4=20$。

5. 两个孩子的条件概率

一对夫妇有两个孩子,假设两个孩子的性别独立,生男生女概率各为 $1/2$。已知至少一个是男孩,两个都是男孩的概率是多少?

  • A. 0.33
  • B. 0.40
  • C. 0.50
  • D. 0.25

答案:A(近似值)。 按年龄区分孩子,四个等可能结果中排除女女,剩下男男、男女、女男,故概率为 $1/3$。这里明确按“至少一个是男孩”解释条件;若条件是指定某个孩子为男孩,或者有另外的抽样告知机制,就不能直接套用这个样本空间。


第 1 题:非负整数口算方程

题目描述

给定七个整数 $a,b,c,d,e,f,z$,求满足下式的非负整数 $x$,保证解存在:

\[a x^b+c x^d+e x^f=z.\]

输入描述:一行依次给出七个整数。系数满足 $1\le a,c,e\le1000$,指数满足 $1\le b,d,f\le5$,目标值满足 $0\le z\le10^7$。

输出描述:输出满足方程的非负整数 $x$。

样例

输入

2 1 3 1 4 1 9

输出

1

代入后左边为 $2+3+4=9$。

输入

1 2 1 2 1 2 27

输出

3

三个平方项相加为 $9+9+9=27$。

思路分析

第一步:从枚举转向单调性。 逐个尝试 $x$ 会浪费目标值较大时的时间。令左边为 $g(x)$,因为所有系数和指数都为正数,每个幂函数在非负整数上严格递增,因此 $g(x)$ 严格递增,解也唯一。

第二步:确定搜索区间。 当 $x\ge1$ 时,至少有一项不小于 $x$,所以解不会超过 $z$;$z=0$ 时解为零。可统一在闭区间 $[0,z]$ 内寻找第一个满足 $g(x)\ge z$ 的位置。

第三步:维护二分不变量。 解始终位于 [lo, hi]。若中点的函数值达到目标,解不在中点右侧,令 hi = mid;否则中点及左侧都不可能是解,令 lo = mid + 1。每步缩短区间,终止时只剩唯一候选,存在性保证该候选恰好满足等式。

实现要点:Python 整数不会发生固定宽度整数溢出,题目中的指数最多为五,可直接算幂。不应改成浮点求根再取整,也不要遗漏 $z=0$。

题解代码

import sys


def solve():
    a, b, c, d, e, f, z = map(int, sys.stdin.readline().split())
    lo, hi = 0, z
    while lo < hi:
        mid = (lo + hi) // 2
        value = a * mid ** b + c * mid ** d + e * mid ** f
        if value >= z:
            hi = mid
        else:
            lo = mid + 1
    print(lo)


solve()

复杂度分析

时间复杂度:在题目固定整数范围、指数至多五的模型下为 $O(1+\log(z+1))$,每轮仅计算三个有界幂。

空间复杂度:在上述有界整数模型下为 $O(1)$,只维护固定数量的整数。若推广到任意位数输入,还需计入大整数运算和存储成本。


第 2 题:聚会气氛值

题目描述

有 $n$ 位参与者,第 $i$ 位的欢乐值为 $d_i$。每一对不同的人恰好打一次招呼。若两人的欢乐值分别为 $u>v$,会场气氛值先增加 $u$、再减少 $v$;若相等则不变。求全部招呼结束后的气氛值总变化。

输入描述:第一行给出 $n$,满足 $1\le n\le2\times10^5$。第二行给出 $n$ 个整数 $d_i$,满足 $0\le d_i\le10^5$。

输出描述:输出总变化量。

样例

输入

3
4 2 0

输出

8

三对分别贡献 $4-2$、$4-0$、$2-0$,合计为八。

输入

3
3 3 3

输出

0

思路分析

第一步:写出每对贡献。 单次变化为 $\lvert u-v\rvert$,相等时也适用。直接枚举所有无序对需要平方级操作,不适合给定人数上限。

第二步:排序消除绝对值。 将欢乐值升序排列。对下标 $i$,它前面的所有数都不大于当前数,与这些人的总贡献为

\[\sum_{k=0}^{i-1}(d_i-d_k)=i\cdot d_i-\sum_{k=0}^{i-1}d_k.\]

第三步:维护前缀和。prefix 保存当前元素之前的和。先累加 i * value - prefix,再把当前元素加入前缀和。排序后每个无序对恰好在处理其较大下标时计入一次,既不遗漏也不重复,因此累计结果就是所求。

例如排序得到 [0, 2, 4],三步贡献分别为零、二、六。只有一人或所有值相等时,公式自然得到零。

实现要点:不能将同一对按两个方向重复计数。先更新答案、后更新前缀和;答案可能超出 32 位整数范围,Python 可直接使用整数。排序是一种方便的通用实现,并非唯一方案;本题值域有界,也可以用频次桶按值扫描。

题解代码

import sys


def solve():
    n = int(sys.stdin.readline())
    values = list(map(int, sys.stdin.readline().split()))
    values.sort()
    prefix = 0
    answer = 0
    for i in range(n):
        value = values[i]
        answer += i * value - prefix
        prefix += value
    print(answer)


solve()

复杂度分析

时间复杂度:$O(n\log n)$,排序之后的一次扫描为线性操作。

空间复杂度:$O(n)$,包括存储数组与 Python 排序可能使用的辅助空间;滚动前缀和本身只需一个整数。


小结

  • 单调方程的关键是证明解存在的区间与判定函数的单调性,再写不会漏解的二分。
  • 两两绝对差之和可以通过排序转化为逐元素贡献,再用前缀和完成线性统计。
  • 选择题要区分题设限定与一般结论;当前页面只覆盖能够核验的五道选择题,不代表整场选择题已完整收录。