Luogu P1160 【队列安排】
2024-10-29 15:33:54
很明显的一个链表裸题
和普通的链表有一个区别就是这个题
可以O(1)插入,O(1)查询
然后我们为了方便,采用双向链表,定义s、f作为指针数组
更详细的解释见代码
#include<iostream>
using namespace std;
const int maxn=1e5+;
int n,m,cnt,s[maxn],f[maxn],fi;
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
int k,p;
cin>>k>>p;
if(!p) //插入到左边
{
s[i]=k; //更新被影响的节点的指针
f[i]=f[k];
s[f[k]]=i;
f[k]=i;
}
else //插入到右边
{
f[i]=k;
s[i]=s[k];
f[s[k]]=i;
s[k]=i;
}
}
cin>>m;
while(m--) //删除
{
int x;
cin>>x;
if(f[x]==-)
continue;
f[s[x]]=f[x];
s[f[x]]=s[x];
f[x]=s[x]=-;
}
for(int i=;i<=n;i++) //寻找头指针
if(!f[i])
{
fi=i;
break;
}
for(int i=fi;i;i=s[i]) //输出链表
cout<<i<<' ';
cout<<endl;
return ;
}
最新文章
- vim编辑二进制文件
- c# random string
- 20145223《Java程序程序设计》第1周学习总结
- StyleCop安装及配置
- MyBatis的学习总结五:调用存储过程【参考】
- UITextField AutoComplete iOS输入框内文本自动完成
- 【jQuery】smartMenu右键自定义上下文菜单插件(似web QQ)
- SharePoint 2013 添加Ribbon菜单
- 感觉不止被Q了一下,还不知道被谁套了一个虚弱
- spotlight 索引重建
- nginx 网络模型,cpu亲和等优点
- Java开发笔记(三十五)字符串格式化
- 算法题:int 数组中 只有一个是id 只出现一次 其他都出现2次 怎么找出只出现一次的id
- k8s之调度约束
- 福州首届.NET开源社区技术交流会圆满成功
- getOutputStream与getWriter方法
- Android 4.4从图库选择图片,获取图片路径并裁剪
- keepalived+mysql 高可用集群
- ps -ef |grep xxx 输出的具体含义
- 【VCS】种草VSCode
热门文章
- 【noip模拟】D(==)
- pg_upgrade升级报错:Only the install user can be defined in the new cluster
- python基础之while语句continue以及break --语法以及案例
- JAVA 线程池基本总结
- NATS_04:NATS协议详解
- P2684 搞清洁
- [应用篇]第一篇 EL表达式入门
- Object-C使用类静态方法创建对象时容易内存泄露
- codevs 3152 装箱问题3
- 软件测试(二)PICT的使用 组合测试方法(两两组合测试,可遍历组合测试)