队列安排

思路:

  链表裸题;

来,上代码:

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. #define maxn 100005
  8.  
  9. struct ListType {
  10. int pre,suc,key;
  11. };
  12. struct ListType list[maxn<<];
  13.  
  14. int tot=,n,m,sta=,End=,to[maxn];
  15.  
  16. inline void in(int &now)
  17. {
  18. char Cget=getchar();now=;
  19. while(Cget>''||Cget<'') Cget=getchar();
  20. while(Cget>=''&&Cget<='')
  21. {
  22. now=now*+Cget-'';
  23. Cget=getchar();
  24. }
  25. }
  26.  
  27. int main()
  28. {
  29. to[]=;
  30. list[sta].suc=;
  31. list[End].pre=;
  32. list[].key=;
  33. list[].pre=sta;
  34. list[].suc=End;
  35. in(n);int v,p;
  36. for(int i=;i<=n;i++)
  37. {
  38. in(v),in(p);
  39. to[i]=++tot;
  40. list[tot].key=i;
  41. int pos=to[v];
  42. if(p)
  43. {
  44. int cur=list[pos].suc;
  45. list[pos].suc=tot;
  46. list[tot].pre=pos;
  47. list[tot].suc=cur;
  48. list[cur].pre=tot;
  49. }
  50. else
  51. {
  52. int cur=list[pos].pre;
  53. list[pos].pre=tot;
  54. list[tot].suc=pos;
  55. list[tot].pre=cur;
  56. list[cur].suc=tot;
  57. }
  58. }
  59. in(m);
  60. while(m--)
  61. {
  62. in(v);
  63. if(to[v])
  64. {
  65. int pos=to[v];
  66. to[v]=;
  67. list[list[pos].pre].suc=list[pos].suc;
  68. list[list[pos].suc].pre=list[pos].pre;
  69. }
  70. }
  71. for(int now=list[sta].suc;now!=End;now=list[now].suc)
  72. {
  73. now!=list[End].pre?printf("%d ",list[now].key):printf("%d\n",list[now].key);
  74. }
  75. return ;
  76. }

AC日记——队列安排 洛谷 P1160的更多相关文章

  1. P1160 队列安排 洛谷

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

  2. AC日记——寻找道路 洛谷 P2296

    题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满足条 ...

  3. AC日记——铺地毯 洛谷 P1003(水水水水水~)

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  4. AC日记——过河卒 洛谷 1002

    题目描述 棋盘上A点有一个过河卒,需要走到目标B点.卒行走的规则:可以向下.或者向右.同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为“马拦过河卒”. ...

  5. AC日记——Power收集 洛谷 P3800

    Power收集 思路: 单调队列优化dp: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 4005 stru ...

  6. AC日记——[SDOI2017]相关分析 洛谷 P3707

    [SDOI2017]相关分析 思路: 裸线段树: (玄学ac): 代码: #include <bits/stdc++.h> using namespace std; #define max ...

  7. AC日记——换教室 洛谷 P1850

    题目描述 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 i ( 1≤ i≤n)个时同段上, 两节内容相同的课 ...

  8. AC日记——任务查询系统 洛谷 P3168

    题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei ...

  9. AC日记——传纸条 洛谷 P1006

    题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...

随机推荐

  1. RAID与LVM磁盘阵列技术

    RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列) RAID概念: RAID技术通过把多个硬盘设备组合成一个容量更大.安全性更好的磁盘阵列,并把数据 ...

  2. U10783 名字被和谐了

    U10783 名字被和谐了 题目背景 众所周知,我们称g是a的约数,当且仅当g是正数且a mod g = 0. 众所周知,若g既是a的约数也是b的约数,我们称g是a.b的一个公约数. 众所周知,a.b ...

  3. Redis实现之数据库(三)

    过期键删除策略 在Redis实现之数据库(二)一小节中,我们知道了数据库键的过期时间都保存在过期字典中,又知道了如果根据过期时间去判断一个键是否过期,现在剩下的问题是:如果一个键过期了,那么它什么时候 ...

  4. GBDT算法简述

    提升决策树GBDT 梯度提升决策树算法是近年来被提及较多的一个算法,这主要得益于其算法的性能,以及该算法在各类数据挖掘以及机器学习比赛中的卓越表现,有很多人对GBDT算法进行了开源代码的开发,比较火的 ...

  5. mysql之面试问题总结

    问题1.char 与varchar的区别? varchar是变长而char的长度是固定的.如果你的内容是固定的大小,char性能更好. char[4] 与varchar[4]   存储字母a a占一个 ...

  6. Sentry 错误监控

    错误监控:https://sentry.io 支持语言或平台: 

  7. Python-S9-Day114——Flask开始实战

    01 今日内容概要 02 课前分享 03 内容回顾 04 路飞学城表结构(一) 05 路飞学城表结构(二) 06 路飞学城立即支付思路 07 今日作业 08 初识Flask 09 werkzug 10 ...

  8. jsp中/el表达式中将后台传来的时间戳格式化为年月日时分秒

    sp中/el表达式中将后台传来的时间戳格式化为年月日时分秒1.引入相关标签库 <%@taglib prefix="c" uri="http://java.sun.c ...

  9. Behavior trees for AI: How they work

    http://www.gamasutra.com/blogs/ChrisSimpson/20140717/221339/Behavior_trees_for_AI_How_they_work.php ...

  10. JS 处理json数据

    $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 JSON.parse(jsonstr); //可以将js ...