详细的链表讲解

很明显的一个链表裸题

和普通的链表有一个区别就是这个题

可以O(1)插入,O(1)查询

然后我们为了方便,采用双向链表,定义s、f作为指针数组

更详细的解释见代码

#include<iostream>
using namespace std;
const int maxn=1e5+10;
int n,m,cnt,s[maxn],f[maxn],fi;
int main()
{cin>>n;for(int i=2;i<=n;i++){int k,p;cin>>k>>p;if(!p)    //插入到左边
        {s[i]=k;        //更新被影响的节点的指针f[i]=f[k];s[f[k]]=i;f[k]=i;}else    //插入到右边
        {f[i]=k;s[i]=s[k];f[s[k]]=i;s[k]=i;}}cin>>m;while(m--)    //删除
    {int x;cin>>x;if(f[x]==-1)continue;f[s[x]]=f[x];s[f[x]]=s[x];f[x]=s[x]=-1;}for(int i=1;i<=n;i++)    //寻找头指针if(!f[i]){fi=i;break;}for(int i=fi;i;i=s[i])        //输出链表cout<<i<<' ';cout<<endl;return 0;
}

转载于:https://www.cnblogs.com/ivanovcraft/p/9057821.html

Luogu 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. P1160 队列安排 链表

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

  6. P2837 晚餐队列安排

    题目背景 Usaco Feb08 Bronze 题目描述 为了避免餐厅过分拥挤,FJ要求奶牛们分2批就餐.每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第2批就餐的奶牛排在队尾,队伍的前半 ...

  7. 晚餐队列安排‖(麻烦的聚餐)

    描述 为了避免餐厅过分拥挤,FJ要求奶牛们分 33 批就餐.每天晚饭前,奶牛们都会在餐厅前排队入内,按FJ的设想,所有第 33 批就餐的奶牛排在队尾,队伍的 前端由设定为第1批就餐的奶牛占据,中间的位 ...

  8. luogu P2365 任务安排(FJOI2019 batch)

    洛谷传送门 FJOI 日常原题 $2333$(似乎还不如 SDOI2012 任务安排 $2333$) 显然考虑 $dp$,这个是经典的把未来的代价先计算的 $dp$,然后才是斜率优化 一开始想状态时一 ...

  9. 【Luogu1160】队列安排(双向链表)

    problem n个人排队,先将1入队 依次指定编号2~n的站在前面某人的左边或右边 从队列中去掉m个人 solution codes #include<iostream> using n ...

最新文章

  1. The total number of locks exceeds the lock table s
  2. 定制zabbix的rpm包---spec文件的书写
  3. cache/TLB里分别都有什么?
  4. sourcetree打开快捷_Sourcetree使用:拉取打开项目的步骤
  5. java 概率 算法_使用概率算法优化快速排序(JAVA)
  6. 手把手教你获取、编译和调试Flink的源代码
  7. python 进行后端分页详细代码
  8. Volley源码解析(三)
  9. springmvc中的session:不比对数据库自动登陆
  10. 编程语言中一些令人抓狂的规则
  11. 学python历程中
  12. 从头学android_activity之间的切换_姻缘测算器
  13. MyBatis 框架的思想及其第一次使用
  14. 非线性回归分析及其Matlab实现
  15. 深度学习辅助决策医疗器械软件审评要点及相关说明
  16. 快速搞懂C语言中exit(0)与exit(1)有什么区别??
  17. 女程序员再漂亮也是单身?解析程序员圈的奇怪现象
  18. 【Appium踩坑】Encountered internal error running command: Error executing adbExec.
  19. python爬虫百度安全验证_爬虫黑科技-绕开百度人机验证
  20. 刘强东当年为什么要自学编程?

热门文章

  1. PyQt5 技巧篇-参数控制窗体右上角只显示关闭按钮实例演示
  2. 模拟电路技术之基础知识(七)
  3. approxPolyDP函数
  4. 防盗链测试01 - Jwplayer+Tengine2.3.1 mp4模块打造流媒体测试服务器
  5. 怎么操作会导致MySQL锁表
  6. Java8 Map中新增的方法使用总结
  7. Linux下mount FreeBSD分区
  8. 图片验证码的JAVA工具类
  9. ASP.NET Core 中文文档 第二章 指南(4.3)添加 View
  10. Oracle 表及表空间(一)