当前位置: 首页 > news >正文

删除并重新排队

给定按从小到大的顺序排列的数字 1 到 n,随后对它们进行 m 次操作,每次将一个数字 x 移动到数字 y 之前或之后。请问完成这 m 次操作后它们的顺序是什么?

 每次输入3 个数, x、y、z。当 z = 0 时,将 x 移动到 y 之后;当 z = 1 时,将 x 移动到 y 之前。

 

#include <bits/stdc++.h>

using namespace std;

int main() {

    int n, m;

    cin >> n >> m;

    list<int> lis;

    for (int i = 1; i <= n; i++)

        lis.push_back(i); //链表赋值

    while(m--) {

        int x, y, z;

        cin >> x >> y >> z;

        lis.remove(x); //删除x

        list<int>::iterator it = find(lis.begin(), lis.end(), y); //找到y

            //上一句可以把 list<int>::iterator it 改为 auto it

        if (z == 0) lis.insert(++it, x); //x放在y后面

        if (z == 1) lis.insert(it, x); //x放在y前面

    }

    for (int x : lis)

        cout << x << " ";

    cout << endl;

    return 0;

}

http://www.xdnf.cn/news/712207.html

相关文章:

  • Redis 主从复制中的全量拷贝机制详解
  • IBM DB2数据库管理工具IBM Data Studio
  • Ubuntu 安装 Miniconda 及配置国内镜像源完整指南
  • 源的企业级网络安全检测工具Prism X(棱镜X)
  • Linux:shell脚本常用命令
  • [智能算法]蚁群算法原理与TSP问题示例
  • 高空视角之大美遥感-基于Leaflet和天地图的壮美遥感影像实践
  • ASP.NET Core OData 实践——Lesson7使用Reference增删改查一对多Navigation Property(C#)
  • AU6815集成音频DSP的2x25W数字型ClaSS D音频功率放大器(替代TAS5805)
  • LabVIEW旋转机械智能监测诊断系统
  • 02.MySQL库的操作
  • 涨薪技术|0到1学会性能测试第90课-性能测试构建
  • 设计模式-发布订阅
  • Docker安装
  • SpringCloud基础知识
  • Unity 中 Update、FixedUpdate 和 LateUpdate 的区别及使用场景
  • AMBA-AHB仲裁机制
  • RabbitMQ备份与恢复技术详解:策略、工具与最佳实践
  • 如何在WSL的Ubuntu里面启动腾讯微搭
  • excel表格记账 : 操作单元格进行加减乘除 | Excel中Evaluate函数
  • 关于DDOS
  • SQL Server 中创建链接服务器
  • android无root抓包(PCAPdroid)
  • Spring框架学习day1--基础概念
  • 深度解析UniApp盲盒系统开发:从源码架构到多端部署全流程
  • 基于STM32F10X的BMP280程序
  • 滚珠导轨:电子制造“纳米级”精度的运动基石
  • 如何用命令行将 PDF 表格转换为 HTML 表格
  • 责任链模式:构建灵活可扩展的请求处理体系(Java 实现详解)
  • ZYNQ移植FreeRTOS和固化和openAMP双核