P1160 队列安排 luogu洛谷
题目描述
一个学校里老师要将班上NNN个同学排成一列,同学被编号为1∼N1\sim N1∼N,他采取如下的方法:
先将111号同学安排进队列,这时队列中只有他一个人;
2−N2-N2−N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1∼(i−1)1\sim (i -1)1∼(i−1)中某位同学(即之前已经入列的同学)的左边或右边;
从队列中去掉M(M<N)M(M<N)M(M<N)个同学,其他同学位置顺序不变。
在所有同学按照上述方法队列排列完毕后,老师想知道从左到右所有同学的编号。
输入输出格式
输入格式:
第111行为一个正整数NNN,表示了有NNN个同学。
第2−N2-N2−N行,第iii行包含两个整数k,pk,pk,p,其中kkk为小于iii的正整数,ppp为000或者111。若ppp为000,则表示将iii号同学插入到kkk号同学的左边,ppp为111则表示插入到右边。
第N+1N+1N+1行为一个正整数MMM,表示去掉的同学数目。
接下来MMM行,每行一个正整数xxx,表示将xxx号同学从队列中移去,如果xxx号同学已经不在队列中则忽略这一条指令。
输出格式:
111行,包含最多NNN个空格隔开的正整数,表示了队列从左到右所有同学的编号,行末换行且无空格。
输入输出样例
说明
样例解释:
将同学222插入至同学111左边,此时队列为:
212 121
将同学333插入至同学222右边,此时队列为:
2312 3 1231
将同学444插入至同学111左边,此时队列为:
23412 3 4 12341
将同学333从队列中移出,此时队列为:
2412 4 1241
同学333已经不在队列中,忽略最后一条指令
最终队列:
2412 4 1241
数据范围
对于20%20\%20%的数据,有N≤10N≤10N≤10;
对于40%40\%40%的数据,有N≤1000N≤1000N≤1000;
对于100%100\%100%的数据,有N,M≤100000N, M≤100000N,M≤100000。
----------------------------------------分割分割分割------------------------------------------------------------------------
很基础很基础
我拿不准的地方在于
如何输出:
第一个是什么?
所以借鉴了一下
-----------------------------------------------------------------------------------------------------------------------------------
using namespace std;
#define maxn 100010
int n,cnt = 1;
bool flag[maxn];
data[++cnt] = x;
pre[cnt] = l;
nxt[cnt] = r;
nxt[l] = cnt;
pre[r] = cnt;
}
nxt[pre[x]] = nxt[x];
pre[nxt[x]] = pre[x];
}
scanf("%d",&n);
data[1] = 1;
int head = 1;
flag[1] = true;
for(int i = 2; i <= n; i++) {
int k,p;
scanf("%d%d",&k,&p);
flag[i] = true;
if(p == 0) {
if(k == head)
head = i;
add(pre[k],k,i);
} else
add(k,nxt[k],i);
}
int m;
scanf("%d",&m);
for(int i = 1; i <= m; i++) {
int x;
scanf("%d",&x);
if(!flag[x])
continue;
if(x == head)
head = nxt[x];
del(x);
cnt--;
flag[x] = false;
}
for(int i = head; cnt; i = nxt[i]) {
printf("%d ",data[i]);
cnt--;
}
return 0;
}
P1160 队列安排 luogu洛谷的更多相关文章
- luogu P1160 队列安排
二次联通门 :luogu P1160 队列安排 /* luogu P1160 队列安排 链表 手动模拟一下就好了... */ #include <cstdio> #define Max 5 ...
- 队列 P1160 队列安排(啊啊 不会啊)
洛谷 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为 ...
- 【新知识】队列&bfs【洛谷p1996约瑟夫问题&洛谷p1451求细胞数量】
(是时候为五一培训准备真正的技术了qwq) part1 队列(FIFO) 算法简介: FIFO:First In First Out(先进先出) 队列是限定在一端进行插入,另一端进行删除的特殊线性表 ...
- P1160 队列安排 洛谷
https://www.luogu.org/problem/show?pid=1160 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进 ...
- 洛谷 P1160 队列安排 Label:链表 数据结构
题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为:老师 ...
- 洛谷 P1160 队列安排
题目描述 一个学校里老师要将班上 NNN 个同学排成一列,同学被编号为 $1-N$ ,他采取如下的方法: 先将 111 号同学安排进队列,这时队列中只有他一个人: 2−N2-N2−N 号同学依次入列, ...
- 洛谷P1160 队列安排
题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为:老师 ...
- 洛谷P1160——队列安排(双向链表)
题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为:老师 ...
- 洛谷——P1160 队列安排(链表的基础操作)
#include<bits/stdc++.h> using namespace std; ]; list<int> stus; list<];//用来存放每一项的迭代器 ...
随机推荐
- hadoop fs,hadoop dfs,hdfs dfs
hadoop fs: FS relates to a generic file system which can point to any file systems like local, HDFS ...
- Hive 和 Mysql
mysql是关系型数据库,通常用来增删改查,OLTP hive是数据仓库,依赖hdfs,一般只做查询,OLAP
- Java并发编程:JMM (Java内存模型) 以及与volatile关键字详解
目录 计算机系统的一致性 Java内存模型 内存模型的3个重要特征 原子性 可见性 有序性 指令重排序 volatile关键字 保证可见性和防止指令重排 不能保证原子性 计算机系统的一致性 在现代计算 ...
- 学了9天java,没什么感觉,有点害怕,总结一下for循环。
for(int i=0; i<100; i++){ if(i%3==0){ continue://满足条件的跳过 } System.out.print(i); } //最后输出的数中没有满足3的 ...
- Matlab function lorenzgui
function lorenzgui %LORENZGUI Plot the orbit around the Lorenz chaotic attractor. % This function an ...
- Vim settings file on Windows
Question: I can't believe I am typing a question for a simple thing like this but here we are. I can ...
- PDF格式的“在线阅读”和“下载”
产生背景: 一个需求,用户可在线阅读PDF,也可下载到本地.听需求来源说人家的网站上的可以做,问我们能做吗,需要这个功能,就要来了网址,看看页面. 问题:上传PDF文件后,发现访问地址在浏览器上打开, ...
- 2017-10-10 都市传说: "部分"中文出现乱码
知乎原链, 作者亦本人 事情起源于项目另一开发者在中文Windows下构建时遇到的部分中文出现乱码问题. 当时很不解的是, 为什么会只有部分出现乱码. 第一感觉是, 如果编码转换不正确, 要么全乱码, ...
- 【读书笔记】iOS-iOS的UI自动化测试
1,Instruments iOS自带的自动化测试工具. 2,TuneupJs 最早的iOS自动化测试工具 https://github.com/alexvollmer/tuneup_js 3,yn ...
- 自定义控件详解(四):Paint 画笔路径效果
Paint 画笔 ,即用来绘制图形的"笔" 前面我们知道了Paint的一些基本用法: paint.setAntiAlias(true);//抗锯齿功能 paint.setColo ...