米哈游 秋招 笔试

1.算法:有两个玩家轮流从一堆石子中取石子,每次操作必须选择一堆石子数量大于1的石子堆,并且选择一个能整除该石子堆石子数量的正整数作为除数。然后将这堆石子分成若干堆,每堆的石子数量等于选择的除数。无法进行操作的玩家输掉游戏。需要判断给定初始石子堆的情况下,先手玩家是否能够获胜。

思路:计算每堆石子中因子2的个数,将所有堆的因子2个数进行异或操作。若异或结果不为零,则先手必胜;否则先手必败。这个结论是通过分析游戏规律得出的,类似于Nim游戏的策略。

2.算法:给定一个字符串和一系列可用的前缀旋转操作。每个操作允许将字符串的前缀(从开头到某个位置)进行旋转,即将前缀部分向左或向右循环移动若干位置。目标是使整个字符串达到特定的偏移状态,即整个字符串向左移动y位后的状态。需要找出达成这个目标状态所需的最小操作次数。

思路:将每个可能的字符串偏移状态视为图中的一个节点,使用BFS遍历所有状态。每次操作对应状态间的转移,记录到达每个状态的最小操作次数。当找到目标偏移状态时,返回对应的操作步数。
#秋招的破防瞬间##秋招笔面试记录##秋招笔试记录##秋招投递记录##米哈游#
全部评论
mark
点赞 回复 分享
发布于 09-17 15:30 北京
什么岗?
点赞 回复 分享
发布于 08-30 15:33 北京

相关推荐

评论
2
2
分享

创作者周榜

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