1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol AI分析

思路

这道题实际上需要维护一个动态链表,但由于数据范围较大,使用暴力解法(即使用 list 逐个查找每个数的位置进行插入和删除)无法通过测试。

为了解决这个问题,我们可以使用双向链表进行优化。需要记录每个节点,以便快速定位特定元素。由于双向链表的特性,在链表的前后插入节点都非常方便,关键在于正确实现双向链表的插入和删除操作。

代码

P2170.2024.10.12-第2题-宝石项链

    1000ms Tried: 36 Accepted: 11 Difficulty: 6 所属公司 : 小米
    算法与标签>链表

题目内容

小红正在欣赏他的一串宝石项链。这个项链还没有封口,是一条链,初始时从左到右宝石分别编1 2 3...n1\ 2\ 3...n1 2 3...n。然而经过一段时间端详,小红觉得他应该把某颗宝石取下,然后放到某颗宝石的前面或者后面去,小红在正式进行调整前,想请你帮他模拟一下他的若干次调整,希望你能告诉他经过他若干次调整后宝石项链的样子。

输入描述

第一行222个空格隔开的整数n和q,表示宝石数量和操作次数。

第二行3q3q3q个空格隔开的整数a1b1op1a2b2op2...aqbqopqa_1b_1op_1a_2b_2op_2...a_qb_qop_qa1​b1​op1​a2​b2​op2​...aq​bq​opq​,对第iii次操作,表示将编号为aia_iai​的宝石取下,放到编号为bbb的宝石旁边,当opiop_iopi​,=000时放到其前,否则放到其后。

1≤n,q≤500001≤n,q≤500001≤n,q≤50000,1≤a,b≤n1≤a,b≤n1≤a,b≤n,opi∈0,1op_i∈{0,1}opi​∈0,1。保证ai≠bia_i≠b_iai​=bi​。

输出描述

输出一行nnn个整数,表示调整后,从左到右宝石的编号。

样例1

输入

5 3
1 2 1 3 2 0 5 4 0

输出

3 2 1 5 4

说明

初始1 2 3 4 51\ 2\ 3\ 4\ 51 2 3 4 5

第一次把111取下,放到222后,变成2 1 3 4 52\ 1\ 3\ 4\ 52 1 3 4 5

第二次把333取下,放到222前,变成3 2 1 4 53\ 2\ 1\ 4\ 53 2 1 4 5

第三次把555取下,放到444前,变成3 2 1 5 43\ 2\ 1\ 5\ 43 2 1 5 4。

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 2, 47ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?