题目链接

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

#pragma comment (linker,"/STACK:102400000,102400000")
#include<stdio.h>
#include<string.h>
#include<string>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<set>
#include<stack>
#include<vector>
#include<map>
#include<queue>
#include<list>
#define myself i,l,r
#define lson i<<1
#define rson i<<1|1
#define Lson i<<1,l,mid
#define Rson i<<1|1,mid+1,r
#define half (l+r)/2
#define lowbit(x) x&(-x)
#define min4(a,b,c,d) min(min(a,b),min(c,d))
#define min3(x,y,z) min(min(x,y),z)
#define max3(x,y,z) max(max(x,y),z)
#define max4(a,b,c,d) max(max(a,b),max(c,d))
#define pii make_pair
#define pr pair<int,int>
typedef long long ll;
const int inff=0x3f3f3f3f;
const long long inFF=9223372036854775807;
const int dir[4][2]={0,1,0,-1,1,0,-1,0};
const int mdir[8][2]={0,1,0,-1,1,0,-1,0,1,1,-1,1,1,-1,-1,-1};
const double eps=1e-10;
const double E=2.718281828459;
const double pi=acos(-1.0);
const int mod=1e6+3;
using namespace std;
const int maxn=2e5+5;
list<int> l;
using itt=list<int>::iterator;
itt pos[maxn];//记录某个数迭代器下标
int erased[maxn];//记录某个数是否被删除
int main()
{int n,m;cin>>n;l.push_front(1);pos[1]=l.begin();for(int i=2;i<=n;i++){int k,p;scanf("%d %d",&k,&p);if(p==0) pos[i]=l.insert(pos[k],i);else{auto nextit =next(pos[k]);pos[i]=l.insert(nextit,i);}}cin>>m;for(int i=1,x;i<=m;i++){scanf("%d",&x);if(!erased[x]) l.erase(pos[x]);erased[x]=1;}int flag=1;for(auto it=l.begin();it!=l.end();++it){if(!flag)  printf(" %d",*it);else printf("%d",*it),flag=0;}printf("\n");return 0;
}

P1160 队列安排 链表相关推荐

  1. 洛谷P1160 队列安排 链表

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

  2. P1160 队列安排

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

  3. P1160 队列安排 洛谷

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

  4. 洛谷-P1160 队列安排

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

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

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

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

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

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

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

  8. Luogu P1160 【队列安排】

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

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

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

最新文章

  1. 使用PHP读取和创建txt,doc,xls,pdf类型文件
  2. ajax异步请求验证ua的网页,ajax 异步请求数据
  3. 科学家名言录[人生]
  4. 高效管理 GitHub Star,用这几个插件就能做到!
  5. 关于tr:hover变色的问题
  6. framework7 1.3.5 路由跳转后DOM失效问题
  7. 17商品推荐系统项目框架
  8. Unity物体运动时画出轨迹
  9. 【信息系统分析与设计】【期末考】
  10. 英语单词速记(一直更新中......)
  11. C语言使用 gzip 算法压缩数据
  12. crackme.chm之Chafe1
  13. 京东云618年中大促开始啦!
  14. 自定义dialog 可以读秒自动关闭
  15. Ubuntu下如何开启iPhone屏幕护眼模式
  16. 二、Apollo高精地图详解(2. 高精地图的采集、生产与格式规范)
  17. 航拍服务价格表,航拍测绘怎么计费的
  18. 【AI人工智能】ChatGPT的价值和10大应用场景
  19. kubelet 无法启动排查
  20. matlab 出现nan原因,在matlab中NAN是什么意思?

热门文章

  1. github 删除工程的操作
  2. Kibana:分析及可视化日志文件
  3. 【大话设计模式】——浅谈设计模式基础
  4. Linux LVM逻辑卷配置过程详解
  5. POJ 1189 记忆化搜索
  6. 在JS中最常看到切最容易迷惑的语法(转)
  7. CMD——ping及用其检测网络故障
  8. ibm db2获取目标时间与当前时间的差值_高帧频视觉实时目标检测系统
  9. 4模型导出_项目模型规范总结 游戏模型制作的注意事项
  10. php codeigniter 语言,php – codeigniter模板引擎,包括语言解析器