正题

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1160


题目大意

有nnn个人,编号是1∼n" role="presentation">1∼n1∼n1\sim n,然后开始时插入第一个人,之后每次可以插入到一个人的左边或右边,然后去掉mm<script type="math/tex" id="MathJax-Element-55">m</script>个人,最后输出队列顺序。


解题思路

裸的链表题
插入操作:

if(c)
{node[node[x].next].prev=i;node[i].next=node[x].next;node[x].next=i;node[i].prev=x;
}
else
{node[node[x].prev].next=i;node[i].prev=node[x].prev;node[x].prev=i;node[i].next=x;
}

删除操作:

node[node[x].prev].next=node[x].next;
node[node[x].next].prev=node[x].prev;

code

#include<cstdio>
using namespace std;
struct Node{bool ok;int prev,next;
}node[100011];
int n,m,x,c,begin;
int main()
{scanf("%d",&n);node[0].next=1;node[0].prev=1;for(int i=2;i<=n;i++){scanf("%d%d",&x,&c);if(c){node[node[x].next].prev=i;node[i].next=node[x].next;node[x].next=i;node[i].prev=x;}//插入右边else{node[node[x].prev].next=i;node[i].prev=node[x].prev;node[x].prev=i;node[i].next=x;     }//插入左边}scanf("%d",&m);for(int i=1;i<=m;i++){scanf("%d",&x);if(!node[x].ok){node[node[x].prev].next=node[x].next;node[node[x].next].prev=node[x].prev;node[x].ok=true;}//删除}x=0;while(node[x].next!=0){printf("%d ",node[x].next);x=node[x].next;}//输出
}

P1160-队列安排【链表】相关推荐

  1. 洛谷P1160 队列安排 链表

    洛谷P1160 队列安排   链表 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #i ...

  2. P1160 队列安排 链表

    题目链接 因为有很多删除与插入的操作,所以用链表是最好的方法.一道基础的链表题,用stl自带的链表解决,第一次使用,记录迭代器下标还是第一次见到-.- #pragma comment (linker, ...

  3. P1160 队列安排

    队列安排 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1~N,他采取如下的方法: 先将111号同学安排进队列,这时队列中只有他一个人: 2−N2-N2−N号同学依次入列,编号为i的同 ...

  4. P1160 队列安排 洛谷

    https://www.luogu.org/problem/show?pid=1160 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进 ...

  5. 洛谷-P1160 队列安排

    题目 Problem Description 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次 ...

  6. 【Java8】堆栈/队列/数组/链表/红黑树,List/set子接口,hashcode/hashset,Map/内部接口,/统计字符个数,debug,斗地主,Collections,TreeSet

    文章目录 1.堆栈/队列/数组/链表:数据结构即计算机组织管理数据的方式,堆栈指的是内存图中的栈,不是堆 2.红黑树:二查,二查平,二查平1倍 3.List子接口:集合,IndexOutOfBound ...

  7. 栈,队列和链表三者之间的关系与区别

    最近一直在学习算法,刷算法题,但是自从大学毕业以来,数据结构的知识都还给老师了,只会个数组,所以前期刷的题目也都是有关数组的 最近跟着小册重学了一遍数据结构,今天就记录一下栈,队列和链表三者之间的关系 ...

  8. 常见的数据结构:栈 队列 数组 链表 红黑树——List集合 _ HashSet集合、可变参数 collections集合 Map集合

    2021-06-07复习java 一.常见的数据结构 栈(先进后出) 队列 数组 链表 红黑树 二.List集合_介绍&常用方法 ArrayList集合 Linkedlist集合 三.Hash ...

  9. Luogu P1160 【队列安排】

    详细的链表讲解 很明显的一个链表裸题 和普通的链表有一个区别就是这个题 可以O(1)插入,O(1)查询 然后我们为了方便,采用双向链表,定义s.f作为指针数组 更详细的解释见代码 #include&l ...

  10. 数据结构--队列(链表实现)

    队列的一种链表简单实现 package mainimport "fmt"type Queue struct {id intname stringnext *Queue }//Pus ...

最新文章

  1. Python拟合数据样本的分布
  2. Python-OpenCV 处理图像(一):基本操作
  3. 聊一聊Elasticsearch和MySQL的常用操作
  4. 2 WM配置-企业结构-分配-给工厂和库存地点分配仓库号
  5. tgp饥荒 服务器无响应,饥荒TGP版常见运行问题有哪些_TGP版礼包领取及邀请添加好友方法详解_快吧单机游戏...
  6. 辨异 —— 机器学习概念辨异、模型理解
  7. 将DW数据窗口导出为EXCEL文件的方法(整理)
  8. 塔设备设计手册_强烈推荐必备资料—化工设备设计手册 (上、下卷全)
  9. the7主题footer.php,【Drupal7主题】Repro 清爽杂志门户Drupal 主题
  10. 实现virtual box虚拟机窗口全屏显示
  11. 基于jmeter+perfmon的稳定性测试记录
  12. 咦?智能颈部按摩仪还能语音播报,快搞起来!
  13. Gartner Hype Cycle (技术成熟度曲线)
  14. word 排版大师1.36版本发布啦。
  15. 新畅行业商城软件v1.3.9
  16. 微信小游戏保存自定义分享图到相册实例
  17. MC.9,库存分析,LIS之乱谈一气
  18. 一步步教你整合SSM框架(Spring MVC+Spring+MyBatis)详细教程重要
  19. 数据结构-栈(栈的C语言实现)
  20. 字模显示字符串C语言,[求助]关于点阵字模显示

热门文章

  1. suse linux下交叉编译,SUSE 10.1下交叉编译环境构建
  2. anaconda和python有什么不一样_黄山毛峰的味道为什么会不一样?
  3. mac下nvm_Mac OS 使用 nvm 管理 node 与 npm 版本
  4. python3怎么安装gmpy2_python2/3 模块gmpy2在linux下安装
  5. python 廖雪峰数据分析统计服_廖雪峰python教程阅读量统计
  6. leetcode115. 不同的子序列
  7. [蓝桥杯2015决赛]奇怪的数列-双指针+模拟
  8. php字符串类型详解,php数字类型之字符串类型详解
  9. Redis分布式锁奥义
  10. word List23