【笔试刷题】360-2026.04.03-改编真题

✅ 春招备战指南 ✅

💡 学习建议:

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

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

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

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

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

360-2026.04.03

1. 环街采购

问题描述

商业街上有 个补给点,编号为

如果 小基 去第 个补给点采购一次,就会拿到 个餐包。

她下一次去哪里,不是自己随便选,而是由当前手里的餐包总数决定:

  • 如果此时手里有 个餐包,
  • 那么下一次就会去编号为 的补给点继续采购。

一开始,小基 手里没有餐包。

请你计算,在连续采购 次之后,她一共会拿到多少个餐包。

输入格式

第一行输入两个正整数

第二行输入 个正整数 ,表示每个补给点一次能拿到的餐包数量。

输出格式

输出一个整数,表示连续采购 次后的餐包总数。

样例输入

3 4
1 2 3

样例输出

6

数据范围

样例 解释说明
样例 1 初始有 个餐包,先去 号点拿到 个;之后去 号点拿到 个,总数变成 ;再去 号点拿到 个;最后去 号点拿到 个,所以答案是

题解

这道题表面在问“买了多少个餐包”,真正决定过程的却只有一件事:

  • 当前餐包总数对 取模以后是多少。

因为下一次去的补给点是:

如果当前会去第 个补给点,那么这一步会发生两件事:

  1. 总数增加
  2. 下一次会去的新补给点变成:

于是我们可以把每个补给点编号 看成一个状态,得到一张只有 个点的函数图:

  • 出发,一定会走到
  • 走这条边时,贡献的权值就是

初始状态是 ,题目要的就是:

  • 从状态 出发,沿着这张图走 步,边权和是多少。

函数图的路径有一个标准性质:

  • 先走一段不重复的前缀;
  • 然后进入一个环;
  • 之后就一直在环里循环。

所以我们只要把“前缀”和“环”拆出来,就能在 时间内算完。

具体做法是:

  1. first[i] 记录状态 第一次出现是在第几步。
  2. prefix[k] 记录前 次采购后的餐包总数。
  3. 从状态 开始不断模拟:
    • 如果当前状态没见过,就继续走;
    • 如果当前状态已经见过,说明找到了环;
    • 如果还没进环就已经走满了 步,直接输出答案。

假设我们在第 step 步再次来到状态 cur,并且它第一次出现是在第 start 步,那么:

  • 前缀长度是 start
  • 环长是 step - start
  • 一整个环的贡献是:

此时还剩下 m - start 步没有处理:

  • 先整环跳若干次;
  • 再处理最后不足一个整环的那一小段。

这样就不用真的模拟到 次了。

复杂度分析

  • 每个状态最多第一次访问一次,所以找前缀和找环总共只会处理 个状态。
  • 后面的整环跳转只需要几次算术运算。

总时间复杂度是 ,空间复杂度是

参考代码

  • Python
import sys

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


def solve():
    n, m = map(int, input().split())
    a = list(map(int, input().split()))

    # first[i] 记录状态 i 第一次在第几步出现,-1 表示还没有出现过。
    first = [-1] * n
    # prefix[k] 表示前 k 次采购后的总餐包数。
    prefix = [0]

    cur = 0
    step = 0

    # 最多只会在进入环之前访问每个状态一次。
    while first[cur] == -1 and step < m:
        first[cur] = step
        gain = a[cur]
        prefix.append(prefix[-1] + gain)
        cur = (cur + gain) % n
        step += 1

    # 如果在进入环之前就已经走满了 m 步,答案就是当前前缀和。
    if step == m:
        print(prefix[step])
        return

    start = first[cur]
    cycle_len = step - start
    cycle_sum = prefix[step] - prefix[start]

    remain = m - start
    whole = remain // cycle_len
    extra = remain % cycle_len

    ans = prefix[start] + whole * cycle_sum
    ans += prefix[start + extra] - prefix[start]
    print(ans)


if __name__ == "__main__":
    solve()
  • Cpp
#include <iostream>
#include <vector>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n;
    long long m;
    cin >> n >> m;

    vector<long long> a(n);
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
    }

    // first[i] 记录状态 i 第一次出现的步数。
    vector<long long> first(n, -1);
    // prefix[k] 记录前 k 次采购后的总餐包数。
    vector<long long> prefix(1, 0);

    int cur = 0;
    long long step = 0;

    while (first[cur] == -1 && step < m) {
        first[cur] = step;
        long long gain = a[cur];
        prefix.push_back(prefix.back() + gain);
        cur = static_cast<int>((cur + gain) % n);
        ++step;
    }

    if (step == m) {
        cout << prefix[step] << '\n';
        return 0;
    }

    long long start = first[cur];
    long long cycleLen = step - start;
    long long cycleSum = prefix[step] - prefix[start];

    long long remain = m - start;
    long long whole = remain / cycleLen;
    long long extra = remain % cycleLen;

    long long ans = prefix[start] + whole * cycleSum;
    ans += prefix[start + extra] - prefix[start];

    cout << ans << '\n';
    return 0;
}
  • Java
import java.io.InputStream;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws Exception {
        FastScanner fs = new FastScanner(System.in);

        int n = fs.nextInt();
        long m = fs.nextLong();

        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = fs.nextLong();
        }

        // first[i] 记录状态 i 第一次出现在哪一步。
        int[] first = new int[n];
        Arrays.fill(first, -1);
        // 在进入环之前最多访问 n 个状态,所以开到 n + 1 就够了。
        long[] prefix = new long[n + 1];

        int cur = 0;
        int step = 0;

        while (first[cur] == -1 && step < m) {
            first[cur] = step;
            long gain = a[cur];
            prefix[step + 1] = prefix[step] + gain;
            cur = (int) ((cur + gain) % n);
            step++;
        }

        if (step == m) {
            System.out.println(prefix[step]);
            return;
        }

        int start = first[cur];
        long cycleLen = step - start;
        long cycleSum = prefix[step] - prefix[start];

        long remain = m - start;
        long whole = remain / cycleLen;
        int extra = (int) (remain % cycleLen);

        long ans = prefix[start] + whole * cycleSum;
        ans += prefix[start + extra] - prefix[start];

        System.out.println(ans);
    }

    private static class FastScanner {
        private final InputStream in;
        private final byte[] buffer = new byte[1 << 16];
        private int ptr = 0;
        private int len = 0;

        FastScanner(InputStream is) {
            in = is;
        }

        private int read() throws Exception {
            if (ptr >= len) {
                len = in.read(buffer);
                ptr = 0;
                if (len <= 0) {
                    return -1;
                }
            }
            return buffer[ptr++];
        }

        long nextLong() throws Exception {
            int c;
            do {
                c = read();
            } while (c <= 32);

            long sign = 1;
            if (c == '-') {
                sign = -1;
                c = read();
            }

            long val = 0;
            while (c

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

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

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

全部评论

相关推荐

天猫运营岗位面试实录2026-04-08第一个HR:什么是运营运营的资源整合是什么?(HR追问)就拿客户反馈来说,如何设计你的数据分析?对售前和售后的理解你了解我们的店铺吗?我们店铺叫什么,主要卖什么,卖的最好的是哪些品类?你有看过我们店铺的产品吗?就我们上架一款产品,你如何设计它从我们全链路网由售前到售后去优化我们一款还不错的产品,但是它只能打80分?你认为运营人员的一个必备能力是什么?那你在沟通协调有没有遇到比较大的困难?你是怎么解决的?然后之前不是水果商城购物系统嘛,做了一个&nbsp;ab&nbsp;测试啊,提升了点击率25%,那它的曝光量怎么样?你这个系统有上线吗?那我问一个库存的问题啊,面对库存积压的话,你会怎么做?你评价一下你自己的学习能力。那你数据分析采用哪些功能或者是分析方法?第二个HR:你就是毕业后的这两年里面的话,你做了什么?你觉得考研备战是一个非常宝贵的一个经验,那你最后的结论是什么?因为你刚刚跟我讲的那些,其实都是些大框架。你当时想考的是哪个专业的?是笔试没过,还是面试没过?你是第几名啊?那你有总结一下,就是你的面试是因为哪里没有过吗?前面你有讲到,你就是通过这段经历,你自己的抗压能力是不错的,然后你自律性也得到了很好的锻炼,这个是你的两个长板,那你还有其他的长板吗?你当时做的那个作品是你自己主动去申请做的?还是是老师安排的?那你的短板是什么?就是不要抛开那些经验,就想看看你软实力板块,你觉得你的短板是什么?那当你发现就是你在进来之后,可能做了半年到一年,可能做的还是一些相对比较基础性的一些工作,那你要怎么样去调整?嗯,那打个比方,比如说你负责的那个一个新品,那么店长那边交给你,然后这个新品上架之后的一个售卖情况的话,就是有70%的人是喜欢,但是有30%的人是下面给了很多的差评,那你作为一个运营,你要怎么样去解决这个问题,甚至说你的第一想法是什么?嗯,那还有一个场景就是,呃,因为运营的工作,它不仅仅只是说负责报报报活动啊,上下架产品啊,以及做一些竞品的分析,甚至说做一些我们自己现有一些爆品的一些自己产品的分析,包括用户洞察等等等等,那么可能还会涉及到我的一个,一个在一个配送时效这一块,因为目前天猫店的话,它主要是依托于我们的一个天猫商这一块,那么的话你负责,假如说把这个任务交给你,让你去优化我们的一个配送时效,因为目前基本上来说,我们跟京东的那个四八来比的话,天猫商还是有所劣势的,那我想就是通过提升这个配送效率来去提高我的转化率,你接到这个任务,你会怎么样去做?反问环节:我想问一下,就这个岗培生项目具体的培养体系是什么?运营岗位的话,它目前就这个团队最大挑战是什么?面试手册:天猫运营终面高频题应答手册回答原则:简洁有力,体现结构化思维(总分总/分点论述),结合具体场景,展现数据分析、解决问题、沟通协同三大核心能力。第一部分:业务理解与运营思维1.&nbsp;什么是运营?运营是通过整合资源(产品、流量、内容、服务),利用数据分析驱动决策,最终实现业务目标(如GMV增长、用户增长、效率提升)的一系列策略和执行动作的总和。其核心是“在有限的资源下,追求效益最大化”。2.&nbsp;运营的资源整合是什么?(HR追问)资源整合是将内部资源(产品、供应链、客服、美工)与外部资源(平台流量、活动资源、达人、服务商)进行有效协调与配置。例如,推新品时,我需要协同产品部确定卖点,联动推广预算,协调美工制作素材,并争取平台的活动资源位,形成合力达成目标。3.&nbsp;就拿客户反馈来说,如何设计你的数据分析?我会构建一个“问题定位-归因分析-效果追踪”的分析闭环:数据收集:从客服工单、评价、问大家等渠道,抓取负面反馈关键词(如“破损”、“安装难”、“色差”)。问题量化:统计各问题出现的频率、关联的SKU,计算其对退款率、差评率的影响程度,找出TOP3核心问题。多维归因:分析问题是否集中出现在特定批次(供应链)、特定安装地区(服务)、或特定详情页描述下(视觉/文案)。行动与复盘:推动相关部门改进后,持续监控相关数据指标的变化,验证解决效果。4.&nbsp;对售前和售后的理解两者共同构成用户体验闭环,目标都是提升客户终身价值(LTV)。售前是“放大器”和“转化器”,核心是精准传递产品价值,通过优化视觉、内容、咨询,降低决策成本,提高转化率。售后是“稳定器”和“反馈源”,核心是解决问题、维护信任,并收集一线反馈,反哺给产品、售前和供应链进行优化,从而降低未来售前成本和售后率。5.&nbsp;就我们上架一款产品,你如何设计它从我们全链路网由售前到售后去优化?我会围绕“数据驱动、触点优化、闭环反馈”展开:售前:通过点击率、加购率、转化率数据,优化主图、短视频、详情页卖点。通过客服询单热点,优化产品FAQ和推荐话术。售中:优化购物路径,减少跳失。设置催付、物流关怀等自动化流程,提升付款率和购买体验。售后:重点监控退货原因、差评、客服咨询高频问题。例如,若集中反映“安装难”,则推动制作安装视频、优化说明书,或提供增值安装服务。将结论反馈给售前,更新页面说明,形成优化闭环。6.&nbsp;你认为运营人员的一个必备能力是什么?数据驱动决策的能力。运营工作充满不确定性和大量杂音,必须能从海量数据(流量、转化、用户反馈)中,敏锐地发现问题、定位真因、评估效果,而不是凭感觉做事。这能确保每次投入的资源都产生最大价值。7.&nbsp;面对库存积压,你会怎么做?这是一个典型的“清库存、保利润、盘活资金”问题。我会采取分层、分渠道的组合策略:数据分析:先分析积压品的特征(sku、价值、保质期),区分核心滞销款与长尾款。制定策略:主流渠道促销:天猫店设置专属清仓页,搭配大额券、组合购。直播/内容渠道:在直播间或逛逛、短视频中作为福利款、秒杀款推出。站外渠道:在社群、淘客渠道进行专属分销。关联销售:与热销款捆绑,作为满赠或加价购选项。复盘预防:复盘积压原因(预测失误、款式问题等),优化未来的备货模型。8.&nbsp;那你数据分析采用哪些功能或者是分析方法?工具:核心是生意参谋(看大盘、竞品、流量、转化),结合CRM(看用户分层)、客服系统(看客诉)。方法:对比分析:同比、环比、与竞品对比。漏斗分析:追踪从曝光到成交各环节的流失,找到转化瓶颈。细分分析:将用户、产品、渠道进行细分(如新老客、价格带),看不同维度的表现。归因分析:定位问题原因,如利用四象限法分析产品(销售额/利润维度)。第二部分:个人特质与压力测试9.&nbsp;毕业后的这段时间在做什么?/你的长短板是什么?(整合回答示例):“毕业后我全心备战考研。这段经历让我在自律、抗压和深度思考上有了极大锻炼。我的长板是快速学习和解决问题的能力,例如此前做项目时,我能快速掌握新工具并产出结果。短板是在多任务并行时,有时会过于深入细节。我正在通过使用项目管理工具(如甘特图)和每日优先级排序来积极改进,确保兼顾深度与效率。”10.&nbsp;当你发现做了半年到一年,还是在做基础工作,怎么调整?首先,我会重新审视这些“基础工作”,思考能否通过优化SOP、借助工具提升其效率,从而释放精力。其次,我会主动与主管沟通,在完成本职工作的基础上,申请参与一个能见度更高的小项目,或主动分析一项业务数据并提出建议,以此展现承担更大责任的能力和意愿。11.&nbsp;新品上架后,70%好评但30%差评,你的第一想法是什么?第一想法是:这不是好评率问题,而是严重的“口碑风险”和“产品改进机会”。我会立即行动:紧急止损:联系部分差评用户,了解具体问题(质量?描述不符?),诚恳解决,争取修改评价。深度分析:将差评内容做词云和分类分析,看是集中在产品质量、物流包装、还是预期管理(如图文不符)上。决策建议:若为普遍性质量问题,立即下架,联系供应链排查。若为描述或服务问题,则快速优化详情页、增补说明、升级服务(如补寄配件)。在详情页和问大家中,针对性回应高频差评点,降低后续消费者的误判。12.&nbsp;接到优化配送时效(对比京东)的任务,你会怎么做?这是一个典型的跨部门协同优化项目。我会分四步走:现状诊断:拉取历史订单数据,分析从支付到签收的各环节时长,定位延误主要发生在仓库出库、干线运输、还是末端配送环节。同时,分析配送时效对“转化率”和“退货率”的实际影响数据。竞品对标:研究京东在仓储布局、物流合作、预售设置等方面的优势,找出我们的可优化点。制定方案:内部协同:与仓储部门探讨优化拣货打包流程、与供应链探讨增设本地云仓的可能性。外部谈判:与合作的物流商谈判,针对核心城市开设物流专线或升级服务标准。前端配合:在商品页清晰标注预计送达时效,设置“当日发/次日达”等标签,管理用户预期。试点与推广:选择1-2个核心城市或产品线进行试点,验证效果后,形成标准操作流程(SOP)进行全店推广。
查看25道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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