1 条题解

  • 0
    @ 2025-10-19 19:22:31

    题目简解

    题意
    NN 个栈,每次从某个栈顶取出一个数放入队列末尾,求最终队列字典序最小的方案。

    核心思路
    贪心:每次选择当前所有栈顶元素中字典序最小的那个栈,弹出其栈顶。

    关键实现

    • 比较两个栈时,比较它们从栈顶开始的整个剩余序列的字典序。
    • 可以用字符串比较的方式直接比较整个栈(或剩余部分)。
    • 预处理或记忆化比较结果,避免每次 O(L)O(L) 比较。

    时间复杂度

    • 最坏 O((L)2)O((\sum L)^2) 直接比较,但实际可用哈希或后缀比较优化到接近 O(LlogN)O(\sum L \log N)

    算法步骤

    1. 用数组或优先队列维护所有非空栈。
    2. 每次比较所有栈的剩余序列字典序,选最小的弹出队首。
    3. 重复直到所有栈为空。

    标签
    贪心、数据结构、字符串(字典序比较)

    • 1

    信息

    ID
    3455
    时间
    10000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    4
    已通过
    1
    上传者