【Luogu1160】队列安排(双向链表)
【摘要】
problem
n个人排队,先将1入队依次指定编号2~n的站在前面某人的左边或右边从队列中去掉m个人
solution
codes
#include<iostream>
using n...
problem
- n个人排队,先将1入队
- 依次指定编号2~n的站在前面某人的左边或右边
- 从队列中去掉m个人
solution
codes
#include<iostream>
using namespace std;
int le[100010], ri[100010], book[100010];
int main(){
int n; cin>>n; ri[0] = 1;
for(int i = 2; i<= n; i++){
int a, b; cin>>a>>b;
if(b == 0){
ri[i] = a;
le[i] = le[a];
ri[le[a]] = i;
le[a] = i;
}else{
le[i] = a;
ri[i] = ri[a];
le[ri[a]] = i;
ri[a] = i;
}
}
int m; cin>>m;
for(int i = 1; i <= m; i++){
int a; cin>>a; book[a] = 1;
}
int cur = 0;
for(int i = 0; i < n; i++){
cur = ri[cur];
if(!book[cur])cout<<cur<<" ";
}
return 0;
}
文章来源: gwj1314.blog.csdn.net,作者:小哈里,版权归原作者所有,如需转载,请联系作者。
原文链接:gwj1314.blog.csdn.net/article/details/80628624
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)