博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷——P1160 队列安排(链表的基础操作)
阅读量:7054 次
发布时间:2019-06-28

本文共 1062 字,大约阅读时间需要 3 分钟。

#include
using namespace std;bool vis[1000003];list
stus;list
::iterator pos[1000003];//用来存放每一项的迭代器 这样遍历链表的时间能从O(n)变成O(1)int main(){ int n; scanf("%d",&n); stus.push_front(1);//插入1到头部 pos[1] = stus.begin();//放入迭代器的开始 相当于存入的位置在哪里 for(int i = 2;i <= n;i++){ int k,p; scanf("%d %d",&k,&p); if(p==0){
//在左边 pos[i] = stus.insert(pos[k],i);//插入左边返回一个迭代器 } else{ list
::iterator it = pos[k];//取出第k个元素迭代器的位置 it++; pos[i] = stus.insert(it,i); } } int m = 0; scanf("%d",&m); while(m--){ int x = 0; scanf("%d",&x); if(!vis[x]){ vis[x]=true;//标记他被删过了 stus.erase(pos[x]);//传入他的迭代器 } } for(list
::iterator it = stus.begin();it!=stus.end();it++){ printf("%d ",*it); } printf("\n"); return 0; }

 

转载于:https://www.cnblogs.com/xiaonuolen/p/10284087.html

你可能感兴趣的文章
在LispBox环境上安装 portableaserve 的详细过程
查看>>
通过 Land of Lisp 中的超简短字符游戏例程学习 loop 和 format
查看>>
instanceof, isinstance,isAssignableFrom的区别
查看>>
ITK, VTK, QT 安装与配置问题记录
查看>>
Java8学习笔记
查看>>
缓存之EHCache(第五个记录)
查看>>
一个超轻量级的 ORM 框架
查看>>
转:JVM底层又是如何实现synchronized的
查看>>
MySQL(Slow)
查看>>
Java SE 6 新特性: JMX 与系统管理
查看>>
jvm系列(八):jvm知识点总览
查看>>
4.1Javap命令的使用
查看>>
Ctags的安装与使用
查看>>
WIN7版IE10
查看>>
服务升降级之开关功能控制
查看>>
Data source rejected establishment of connection, message from server: Too many connections
查看>>
自动切换的tab标签代码
查看>>
VMware ThinApp简明教程:制作单文件软件和便携软件
查看>>
Swift开发笔记-Mac OS X 天气预报应用开发(Xcode7.2)
查看>>
js指针时钟
查看>>