当前位置:网站首页>P1160 队列安排
P1160 队列安排
2022-08-05 07:31:00 【Recursi】
队列安排
题目描述
一个学校里老师要将班上 N N N 个同学排成一列,同学被编号为 1 ∼ N 1\sim N 1∼N,他采取如下的方法:
先将 1 1 1 号同学安排进队列,这时队列中只有他一个人;
2 − N 2-N 2−N 号同学依次入列,编号为 i i i 的同学入列方式为:老师指定编号为 i i i 的同学站在编号为 1 ∼ ( i − 1 ) 1\sim(i-1) 1∼(i−1) 中某位同学(即之前已经入列的同学)的左边或右边;
从队列中去掉 M ( M < N ) M(M<N) M(M<N) 个同学,其他同学位置顺序不变。
在所有同学按照上述方法队列排列完毕后,老师想知道从左到右所有同学的编号。
输入格式
第 1 1 1 行为一个正整数 N N N,表示了有 N N N 个同学。
第 2 ∼ N 2\sim N 2∼N行,第 i i i 行包含两个整数 k , p k,p k,p,其中 k k k 为小于 i i i 的正整数, p p p 为 0 0 0 或者 1 1 1。若 p p p 为$ 0$,则表示将 i i i 号同学插入到 k k k 号同学的左边, p p p 为 1 1 1 则表示插入到右边。
第 N + 1 N+1 N+1 行为一个正整数 M M M,表示去掉的同学数目。
接下来 M M M 行,每行一个正整数 x x x,表示将 x x x 号同学从队列中移去,如果 x x x 号同学已经不在队列中则忽略这一条指令。
输出格式
1 1 1 行,包含最多 N N N 个空格隔开的正整数,表示了队列从左到右所有同学的编号,行末换行且无空格。
样例 #1
样例输入 #1
4
1 0
2 1
1 0
2
3
3
样例输出 #1
2 4 1
提示
样例解释:
将同学 2 2 2 插入至同学 1 1 1 左边,此时队列为:
2 1
将同学 3 3 3 插入至同学 2 2 2 右边,此时队列为:
2 3 1
将同学 4 4 4 插入至同学 1 1 1 左边,此时队列为:
2 3 4 1
将同学 3 3 3 从队列中移出,此时队列为:
2 4 1
同学 3 3 3 已经不在队列中,忽略最后一条指令
最终队列:
2 4 1
数据范围
对于 20 % 20\% 20% 的数据,有 1 ≤ N ≤ 10 1\leq N\leq 10 1≤N≤10;
对于 40 % 40\% 40% 的数据,有 1 ≤ N ≤ 1000 1\leq N\leq 1000 1≤N≤1000;
对于 100 % 100\% 100% 的数据,有 1 ≤ N , M ≤ 100000 1\leq N,M\leq100000 1≤N,M≤100000。
#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn = 1e6 + 10;
const int mod = 1e9 + 7;
const int INF = 1e9 + 10;
const int N = 1e6;
using namespace std;
const int mx=1e5+10;
int n,m;
struct T{
int l,r;
int d;
}t[mx]={
0};
void add(int i,int k,int f) //新增同学
{
if(f==1) //左
{
t[k].r=t[i].r;
t[k].l=i;
t[i].r=k;
t[t[k].r].l=k;
}
else //右
{
t[k].r=i;
t[k].l=t[i].l;
t[i].l=k;
t[t[k].l].r=k;
}
}
int main()
{
int x,k,f;
cin>>n;
t[0].r=0,t[0].l=0;
add(0,1,1);
for (int i=2;i<=n;i++)
{
cin>>x>>f;
add(x,i,f);
}
cin>>m;
while(m--)
{
cin>>x;
t[x].d=1; //将该同学标记为不输出
}
for (int i=t[0].r;i;i=t[i].r)
{
if (t[i].d==0) //输出未标记的
cout<<i<<" ";
}
return 0;
}
边栏推荐
- TRACE32——C源码关联1
- Libpq 是否支持读写分离配置
- 【win7】NtWaitForKeyedEvent
- Falsely bamboo brother today and found a localization of API to use tools
- RNote108---Display the running progress of the R program
- MySQL:连接查询 | 内连接,外连接
- "Automatic Data Collection Based on R Language"--Chapter 3 XML and JSON
- 强网杯2022 pwn 赛题解析——house_of_cat
- [上海]招聘.Net高级软件工程师&BI数据仓库工程师(急)
- 400 times performance improvement 丨 swap valuation optimization case calculation
猜你喜欢

Shiny02---Shiny异常解决

在anaconda Promat界面import torch通过,在jupyter notebook中报错的问题(仅提供思路理解!)

Chapter3、色调映射

文本特征化方法总结

In the anaconda Promat interface, import torch is passed, and the error is reported in the jupyter notebook (only provide ideas and understanding!)

busybox 知:构建

线性代数对角化

高端无主灯设计灯光设计该如何布置射灯灯具?

TRACE32——Go.direct

每月稳定干2万
随机推荐
uniapp time component encapsulates year-month-day-hour-minute-second
TCP sticky packet unpacking problem + solution
【深度学习实践(一)】安装TensorFlow
支持触屏slider轮播插件
MAYA船的建模
学习机赛道加速:请“卷”产品,不要“卷”营销
C# FileSystemWatcher
cmake 学习使用笔记(三)
[Tool Configuration] Summary of Common Uses of VSCode
re正则表达式
Flink Learning 12: DataStreaming API
达梦数据库大表添加字段
U++ UE4官方文档课后作业
配合屏幕录像专家,又小又清晰!
Cannot compare or sort text, ntext, and image data types
props 后面的数据流是什么?
Jmeter永久设置中文界面
请问my sql如何把两个表的内容集合在一起啊?
访问被拒绝:“microsoft.web.ui.webcontrols”的解决办法
文本特征化方法总结