洛谷 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 ...
随机推荐
- AGC004F Namori 树形DP、解方程(?)
传送门 因为不会列方程然后只会树上的,被吊打了QAQ 不难想到从叶子节点往上计算答案.可以考虑到可能树上存在一个点,在它的儿子做完之后接着若干颜色为白色的儿子,而当前点为白色,只能帮助一个儿子变成黑色 ...
- redis底层设计(三)——redis数据类型
今天我们来看一下redis的数据类型.既然redis的键值对可以保存不同类型的值,那么很自然就需要对键值对的类型进行检查以及多态处理.下面我们将对redis所使用的对象系统进行了解,并分别观察字符串. ...
- 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册
项目地址:https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + ...
- Django 的路由层 视图层 模板层
--------------------------------------------------------------通过苦难,走向欢乐.——贝多芬 Django-2的路由层(URLconf) ...
- logstash采集与清洗数据到elasticsearch案例实战
原文地址:https://www.2cto.com/kf/201610/560348.html Logstash的使用 logstash支持把配置写入文件 xxx.conf,然后通过读取配置文件来采集 ...
- Python入门-用户登录程序升级版
编写登陆接口 基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程 ...
- jmeter之批量修改请求路径
今天工作时碰到一个问题:测试环境中由于tomcat没指定webapps下的文件夹名,导致tomcat使用了webapps下默认的文件夹名,而我的jmeter脚本都已经做出来了,一共83个接口,挨个改路 ...
- Booth乘法
先看一个例子,结合疑问看算法. 1.已知X=+0.0011 Y=-0.1011 求[XY]补 解:[x]补 =0.0011 , [-x]补 =1.1101,[y]补 =1.0101 部分积 ...
- Tomcat connecttimeout sessiontimeout
IIS中的会话超时和连接超时之间有什么区别? | Adept Technologies Inc.https://www.adepttech.com/blog/?p=825 IIS中的会话超时和连接超时 ...
- 前端三大框架Angular & React & Vue
前端三大框架: Angular[Google]:一套框架,多种平台移动端 & 桌面端.学会用Angular构建应用,然后把这些代码和能力复用在多种多种不同平台的应用上 —— Web.移动 We ...