【笔试刷题】网易-2026.04.12-改编真题

✅ 春招备战指南 ✅

💡 学习建议:

  • 先尝试独立解题
  • 对照解析查漏补缺

🧸 题面描述背景等均已深度改编,做法和题目本质基本保持一致。

🍹 感谢各位朋友们的订阅,你们的支持是我们创作的最大动力

🤖 内容包含AI辅助生成,题解和代码均经过多轮验证,有问题欢迎评论

🌸 目前本专栏已经上线200+套真题改编解析,后续会持续更新的

春秋招笔试机考招合集 -> 互联网必备刷题宝典🔗

网易-2026.04.12

题目总览

题号 题名 主要做法 难度
1 镜面照明实验 网格模拟 + 状态判重 中等
2 双核编译排期 状态压缩最短路 困难

这套网易题量不多,但两题都不是扫一眼就能写完的类型。第一题要把反射和判重写稳,第二题则是小范围状态搜索,重点在于把调度过程编码干净。

1. 小兰的镜面照明实验

问题描述

小兰正在调试一块用于模拟灯光传播的训练场地。场地被划成一个 的网格,每个格子只会是下面几种类型之一:

  • #:障碍物。
  • .:空地。
  • /\:镜子。
  • LRUD:一盏灯,分别表示它的初始照射方向为左、右、上、下。

每盏灯都会从自己的位置出发,沿当前方向一格一格传播。传播过程中遵循下面的规则:

  • 如果下一格是障碍物或另一盏灯,那么光线会在进入前停下。

  • 如果光线进入了 /,方向会立刻变化:

  • 如果光线进入了 \,方向会立刻变化:

  • 镜子格子可以被光线穿过,但镜子本身不算空地,不计入被照亮次数。

对每个空地格子,定义它的亮度为“能照到它的灯的数量”。同一盏灯即使经过回路,也只会对同一个空地贡献一次。

请输出整个场地的亮度分布:

  • 空地输出被多少盏灯照到。
  • 障碍物、镜子、灯所在格子统一输出

输入格式

第一行输入两个整数 ,表示网格的行数和列数。

接下来输入 行字符串,每行长度都为 ,表示这张地图。

保证地图中的字符只会出现在 #./\LRUD 之中。

输出格式

输出 行,每行输出 个整数,相邻整数之间用一个空格分隔。

对于每个位置:

  • 若该格子是空地,输出它的亮度。
  • 若该格子是障碍物、镜子或灯,输出

样例输入

3 4
R.#.
..#.
.L..
4 4
R/L.
....
R...
....

样例输出

-1 1 -1 0
0 0 -1 0
1 -1 0 0
-1 -1 -1 0
0 1 0 0
-1 2 1 1
0 1 0 0

数据范围

  • 镜子格子的总数不超过
  • 灯格子的总数不超过

样例说明

  • 样例 1:第一行最左侧的右向灯会照亮第一行第二列,第三行第二列的左向灯会照亮第三行第一列。障碍物会直接截断传播,所以其后的空地不会继续被同一束光照到。
  • 样例 2:第一行的光线会先进入镜子,再发生转向。第三行最左侧的右向灯会穿过一整行,因此第三行第二列同时被两盏灯照到,输出为

题解

题意本身不难,关键是把“每盏灯怎么走”模拟清楚,并且防止镜子把同一盏灯带进死循环。

一、直接按灯模拟

灯的数量最多是 ,整张地图的总格子数最多是

这说明就算对每盏灯单独做一次传播模拟,总工作量也仍然可控。

做法很直接:

  1. 扫描整张地图,找出每一盏灯。
  2. 按灯的初始方向出发,一格一格往前走。
  3. 走到空地时,把这个格子的答案加一。
  4. 走到镜子时,先改方向,再继续前进。
  5. 走到边界外,或者下一格是障碍物、另一盏灯时停止。

二、为什么需要“位置 + 方向”去重

如果场地里有镜子,光线可能形成回路。

例如一束光经过几块镜子后,重新回到之前到过的位置,但这时它的朝向也许已经和上次一样了。只要再次出现同一个“位置 + 方向”状态,后面的轨迹就会完全重复,再继续模拟已经没有意义。

因此可以为每盏灯维护一个访问标记:

  • 状态写成 (x, y, dir)
  • 如果当前灯已经到过这个状态,就立刻停止。

这样既能避免死循环,也能保证同一盏灯不会对同一段循环路径重复计数。

三、镜子反射怎么写

把四个方向编号成:

  • 0:上。
  • 1:右。
  • 2:下。
  • 3:左。

那么两种镜子的反射关系可以直接写成数组。

对于 /,反射映射是

对于 \,反射映射是

这样模拟时只要看当前格子是哪种镜子,就能在 时间改方向。

四、复杂度分析

设一盏灯传播过程中经过的状态数为 。每盏灯在同一个 (位置,方向) 上最多只会停留一次,因此单盏灯的复杂度是

总复杂度可以写成 。在本题范围下,这个量级足以通过。

额外空间主要是答案数组和访问标记,复杂度为

参考代码(Python)

import sys

input = lambda: sys.stdin.readline().strip()


def solve():
    # Read input in ACM mode and build the answer directly.
    n, m = map(int, input().split())
    g = [input() for _ in range(n)]

    # 方向顺序固定为:上、右、下、左。
    dx = [-1, 0, 1, 0]
    dy = [0, 1, 0, -1]
    mp = {"U": 0, "R": 1, "D": 2, "L": 3}

    # 两种镜子的反射映射。
    ref1 = [1, 0, 3, 2]
    ref2 = [3, 2, 1, 0]

    ans = [[0] * m for _ in range(n)]
    vis = [[[0] * 4 for _ in range(m)] for _ in range(n)]
    lid = 0

    def ok(x, y):
        return 0 <= x < n and 0 <= y < m

    for i in range(n):
        for j in range(m):
            if g[i][j] not in mp:
                continue

            lid += 1
            d = mp[g[i][j]]
            x = i + dx[d]
            y = j + dy[d]

            # 每盏灯独立模拟,出现重复状态就说明进入了循环。
            while ok(x, y):
                c = g[x][y]
                if c == "#" or c in mp:
                    break

                if vis[x][y][d] == lid:
                    break
                vis[x][y][d] = lid

                # 只有空地才累加亮度。
                if c == ".":
                    ans[x][y] += 1
                elif c == "/":
                    d = ref1[d]
                else:
                    d = ref2[d]

                x += dx[d]
                y += dy[d]

    out = []
    for i in range(n):
        row = []
        for j in range(m):
            if g[i][j] == ".":
                row.append(str(ans[i][j]))
            e

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

互联网刷题笔试宝典 文章被收录于专栏

互联网刷题笔试宝典,这里涵盖了市面上大部分的笔试题合集,希望助大家春秋招一臂之力

全部评论

相关推荐

04-13 18:47
已编辑
重庆大学 Java
面试时间:4.3上午11点,全程40min左右(开始ai&nbsp;coding没写完,面试官给了几分钟让写ai&nbsp;coding)面试官先跟我说明了一下一共2轮技术面+1轮hr面,但是实习生的话,hr一般都不面试。1、AI&nbsp;Coding:AI处理违规评论。生成的很慢,甚至pom.xml写进去之后又被ai自己删掉了,整个项目爆红;然后跟面试官讲了一下思路;面试官问我是不是做过类似的功能,我说没有做过,只是这个应用场景自己平时用社交媒体比较多,所以比较熟悉。还针对AI&nbsp;Coding问了些问题:你认为你刚刚在AI&nbsp;Coding的过程中存在的问题是什么?你怎么看待AI&nbsp;Coding的,你认为是机会,还是挑战?2、自我介绍简要介绍了一下项目里完成的流程和功能。然后面试官说一面已经问过项目细节,就不再展开。3、面试官把官网简历上的项目名都念了一遍,问你做这些项目的背景和动机是什么?主要讲了rag项目的动机,从兴趣到可应用场景的思考。4、项目中有遇到什么困难吗?讲了会话记忆的方案选型,延申到了Claude&nbsp;Code的会话记忆。5、项目中有哪些没有达到自己预期的地方?没有数字化的评估,从忠实度、相关度、准确率、召回率四个指标讲如果要做评估,已有的一些思路。6、你觉得你做完这个项目之后,你的收获是什么?了解目前agent领域已有的技术沉淀和应用。rag项目讲完之后,面试官应该也看出来了,就说后面两个项目应该都是学习项目吧,答是。面试官提到动态线程池项目,我就问美团是不是有专门的技术专家去研发动态线程池,因为我最早学动态线程池就看到是美团的技术专家牵头的。面试官说每个企业都有自己的动态线程池,然后跟我讲了动态线程池主要是为了解决什么样的问题,讲的很具体,最后面试官讲完之后,我给面试官了一个肯定(哈哈哈有点倒反天罡)7、闲聊你这个成绩,应该可以保研啊,考虑保研吗?你老家是哪的?入职时间,实习时间?毕设什么时候?反问1、业务是什么?2、如果有幸入职,我的工作是什么?3、面试表现如何?面试官说可能有些问题没有提前准备(感觉可能这个地方有点寄,有些问题都是临时往自己知道的方向去硬扯的,而且表达的也不是特别清晰),但是临场反应不错。4、面试结果什么时候出来?一周内,如果有什么问题后面hr会联系。4.9中午发短信问二面面试官结果大概什么时候出,下午回复说“耐心等一等,已经有结论了”,我寻思着我应该不是面试官的第一选择,他们后面还要来个究极大横向。目前官网流程仍然显示“面试”状态,简历可能被锁住了,还没有回人才库。----4.114.13二编:下午收到offer邮件了,没有任何征兆,连oc都没有,直接就甩来一个offer,给hr打电话也没接😅
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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