洛谷 P1160 队列安排
题目描述
一个学校里老师要将班上 NNN 个同学排成一列,同学被编号为 $1~N$ ,他采取如下的方法:
先将 111 号同学安排进队列,这时队列中只有他一个人;
2−N2-N2−N 号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为 1−(i−1)1-(i -1)1−(i−1) 中某位同学(即之前已经入列的同学)的左边或右边;
3.从队列中去掉 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 。
就是一个基础链表,挺简单的。
#include<iostream>
#include<cstdio>
using namespace std;
const int N=;
int n,m;
bool b[N];
struct node
{
int l,r;
}a[N];
void ins(int x,int y,int d)
{
if(d==)
a[x].l=a[y].l,a[x].r=y,a[a[y].l].r=x,a[y].l=x;
else
a[x].r=a[y].r,a[x].l=y,a[a[y].r].l=x,a[y].r=x;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
a[i].l=a[i].r=-;
a[].l=,a[].r=n+;
for(int i=;i<=n;i++)
{
int k,p;
scanf("%d%d",&k,&p);
ins(i,k,p);
}
scanf("%d",&m);
while(m--)
{
int x;
scanf("%d",&x);
if(!b[x])
{
b[x]=;
a[a[x].l].r=a[x].r;
a[a[x].r].l=a[x].l;
a[x].l=a[x].r=-;
}
}
for(int i=;i<=n;i++)
if(!b[i]&&a[i].l==)
{
int t=i;
printf("%d ",t);
while(a[t].r!=n+)
{
t=a[t].r;
printf("%d ",t);
}
printf("\n");
}
return ;
}
洛谷 P1160 队列安排的更多相关文章
- 洛谷 P1160 队列安排 Label:链表 数据结构
题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为:老师 ...
- 洛谷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<];//用来存放每一项的迭代器 ...
- luogu P1160 队列安排
二次联通门 :luogu P1160 队列安排 /* luogu P1160 队列安排 链表 手动模拟一下就好了... */ #include <cstdio> #define Max 5 ...
- AC日记——队列安排 洛谷 P1160
队列安排 思路: 链表裸题: 来,上代码: #include <cstdio> #include <cstring> #include <iostream> usi ...
- 队列 P1160 队列安排(啊啊 不会啊)
洛谷 题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1-N,他采取如下的方法: 1.先将1号同学安排进队列,这时队列中只有他一个人: 2.2-N号同学依次入列,编号为i的同学入列方式为 ...
- [洛谷P2365] 任务安排
洛谷题目链接:任务安排 题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时 ...
- 洛谷P2365 任务安排(斜率优化dp)
传送门 思路: 最朴素的dp式子很好考虑:设\(dp(i,j)\)表示前\(i\)个任务,共\(j\)批的最小代价. 那么转移方程就有: \[ dp(i,j)=min\{dp(k,j-1)+(sumT ...
随机推荐
- [Spark][Python][DataFrame][Write]DataFrame写入的例子
[Spark][Python][DataFrame][Write]DataFrame写入的例子 $ hdfs dfs -cat people.json {"name":" ...
- C#获取指定IP地址的数据库所有数据库实例名
/// <summary> /// 获取指定IP地址的数据库所有数据库实例名. /// </summary> /// <param name="ip" ...
- Python全栈开发之路 【第七篇】:面向对象编程设计与开发(1)
本节内容 一.编程范式 编程指的是写程序.敲代码,就是指程序员用特定的语法.数据结构和算法编写的代码,目的是来告诉计算机如何执行任务的. 在编程的世界里最常见的两大流派是:面向过程与面向对象.“功夫的 ...
- 海康威视笔试(C++)
1. select和epoll的区别 2.服务器并发量之高性能服务器设计 3.SQL关键字 4.TCP乱序和重传的问题 5.c++对象内存分配问题 6.c++多线程 join的用法: Thread类的 ...
- 杭电 1061 Rightmost Digit计算N^N次方的最后一位
Problem Description Given a positive integer N, you should output the most right digit of N^N. Input ...
- 多路选择器实现总线结构——Verilog
////////////////////////////////////////////////////////////////////////////////// //该程序完成通过多路选择器MUX ...
- 用python表白了!!!
用python 画一颗心,代码: import numpy as np import matplotlib.pyplot as plt x = np.linspace(-8 , 8, 1024) ...
- 双击启动tomcat中的startup.bat闪退原因及解决方法
免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了t ...
- [FreeBuff]Trojan.Miner.gbq挖矿病毒分析报告
Trojan.Miner.gbq挖矿病毒分析报告 https://www.freebuf.com/articles/network/196594.html 竟然还有端口转发... 这哥们.. 江民安全 ...
- js怎么能取得多选下拉框选中的多个值?
方法:获取多选下拉框对象数组→循环判断option选项的selected属性(true为选中,false为未选中)→使用value属性取出选中项的值.实例演示如下: 1.HTML结构 1 2 3 4 ...