acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 正经题解|序列X

    题目大意 有一个长度为 nnn 序列 xxx,xxx 是个排列。你可以通过一次变换操作,得到一个新的序列,将序列中任意一个数,移动到 xxx 的头部。 题意分析 给你 kkk 个序列,是否能找到 xxx 序列,使得这 kkk 个序列由 xxx 得到。 解题思路 假设现在有个序列为 2,3,4,1,52,3,4,1,52,3,4,1,5。 我变换两个序列出来 3,2,4,1,53,2,4,1,53,2,4,1,5,4,2,3,1,54,2,3,1,54,2,3,1,5。 我们可以发现虽然变化后,除去头部,333 的位置一定在 4,1,54,1,54,1,5 的前面,444 的位置一定在 1,51,51,5 的前面,111 的位置一定在 555 的前面。也就是说去除头部后,后面元素的相对位置是不变的。 对于顺序关系,我们很容易想到拓扑排序,我们去除序列的头部,依次建边,如果存在有向无环图则说明后面部分的相对顺序全部正确,反之错误。 时间复杂度分析 拓扑排序的复杂度为:O(V+E)O(V + E)O(V+E),其中 VVV 表示图中顶点的个数,EEE 表示图中边的数量。 代码演示

    userId_undefined

    AC君

    管理员
    倔强青铜
    26阅读
    0回复
    1点赞
首页