洛谷P1160

find命令 命令是 Linux/Unix 系统中用于搜索文件和目录的强大工具,支持多种搜索条件组合,并能对搜索结果执行各种操作。以下是其详细说明、常用参数及示例: 搜索路径:指定起始目录(如 、 或 表示当前目录)。 查找条件:基于文件名、类型、大小、时间等属性过滤。 处理动作:对匹配结果执行操作(如打印、删除、执行命令等)。 常用参数及示例 1. 按名称查找 :区分大小写匹配文件名。 :不区分大小写匹配文件名。 2. 按文件类型查找 :指定文件类型。 文件类型: :普通文件 :目录 :符号链接 阅读详情

很明显是要用链表的,主要写写用指针的链表,然后要注意一个技巧就是如何快速地查找某个学生的位置。在这道题中,所有的数据均为整数,所以我们可以让同学们的号码和que一 一对应。也就是说,如果需要寻找i号同学,直接使用que[i]即可,这么做不仅使我们的代码更为简单易懂,更重要的是节约了大量的宝贵时间。然后,用指针写的链表也有两种选择,即你是用一个指向数据类型的指针数组还是直接一个保存数据类型的数组。感觉上是用指针比较好,因为这道题可以不用new,你知道了所有数据的长度,但在很多题目中需要新建的链表长度是不确定的。

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
struct node{
    int val;
    node*left,*right;
}G[100005];//直接保存数据类型
bool inque[100005];
int main()
{
    int n,i,j,k,m;
    cin>>n;
    for(i=1;i<=n;i++)G[i].val=i;inque[1]=true;int head=1;//记录队头
    for(i=2;i<=n;i++){
        int p;cin>>k>>p;inque[i]= true;
        if(!p){
            if(k==head)head=i;//注意队头的变更
            if(G[k].left){
                G[i].left=G[k].left;
                G[k].left->right=&G[i];//注意要加上取地址符
            }
            G[i].right=&G[k];
            G[k].left=&G[i];
        }
        else{
            if(G[k].right){
                G[i].right=G[k].right;
                G[k].right->left=&G[i];
            }
            G[i].left=&G[k];
            G[k].right=&G[i];
        }
    }
    cin>>m;
    for(i=1;i<=m;i++){
        int x;cin>>x;
        if(!inque[x])continue;
        inque[x]=false;
        if(x==head)head=G[x].right->val;//队头变更
        if(G[x].left){
            G[x].left->right=G[x].right;
        }
        if(G[x].right){
            G[x].right->left=G[x].left;
        }
    }
    cout<<G[head].val;
    while(G[head].right){
        head=G[head].right->val;
        cout<<' '<<G[head].val;
    }
    cout<<endl;

    return 0;
}
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
struct stu {
    int id;
    bool removed;
    stu*prev, *next;
    stu():prev(0),next(0){};
};
stu*d[100005];
int head = 1;
void add(int x, int k, int p)
{
    d[x] = new stu();d[x]->id=x;
    if (!p) {
        if (d[k]->prev)//一定不要忘了判断这个!!
            d[k]->prev->next = d[x];
        d[x]->prev = d[k]->prev;
        d[k]->prev = d[x];
        d[x]->next = d[k];
        if (k == head)
            head = x;
    }
    else {
        if (d[k]->next)//不要忘了判断!!!
            d[k]->next->prev = d[x];
        d[x]->next = d[k]->next;
        d[x]->prev = d[k];
        d[k]->next = d[x];
    }
}
int main()
{
    int n, i, j, p, k;
    cin >> n;
    d[1] = new stu();d[1]->id=1;d[1]->removed=false;
    for (i = 1; i < n; i++) {
        cin >> k >> p;
        add(i + 1, k, p);
    }
    int m; cin >> m; int cnt = n;
    for (i = 1; i <= m; i++) {
        cin >> j;
        if (!d[j]->removed) {
            cnt--;
            d[j]->removed = true;
        }
    }
    stu*e = d[head];
    while (e) {
        if (!e->removed) {
            cout << e->id;
            if (--cnt)cout << " ";
            else cout << endl;
        }
        e = e->next;
    }

    return 0;
}
从Axure转Figma?这篇编组、缩放、圆角、评论的对比指南帮你无缝切换 本文为资深Axure设计师提供了向Figma无缝迁移的实战指南。文章深度对比了编组、缩放、圆角、评论等核心操作,重点解析了Figma独特的自动布局、组件系统和实时协作功能,旨在帮助用户快速适应新工具,实现设计思维与工作效率的跃迁。 阅读详情

相关推荐

IAR调试CC1310的错误:Fatal error:Failed to connect to the XDS emlulator (Error -241 @ 0x0:)

从simplelink_cc13x0_sdk_2_10_00_36导入collector工程后,rebuild后进行debug,出现了如图错误:Fatal error:Failed to connect to the XDS emlulator (connect ICEPick)...(Error -241 @ 0x0)A router subpath could not be accessed....

qq_40417648的博客 6228

洛谷P1160 队列安排(Problem B)超级废话版!!!

然后是删除操作,我们前面创建了一个h数组用于判断是否被删除,于是我们可以用一个if(h[cur])就可以判断是否要删除它了,在这里可以先用一个tmp来记录L[cur].l,这样是为了修改要删除的数的右边的那个数的左边,也就是L[L[cur].r].l的值。这里说明有删除操作,并且结合下面的输入说明和样例得知,同一个数可能被删除多次,所以为了防止删除同一个数字而导致的其他问题,这里可以用一个数组来表示这个同学是否有被删除过,在开始删除前,可以把数组全部赋值为1,表示没被删除。我们开始写for循环里的内容,

wkyhnyq的博客 1010

Tushare Day2——了解stock_basic数据并根据行业和地区进行统计

了解stock_basic数据 1  stock_basic基础信息2  导入包和stock_basic数据、查看基本信息3  根据行业列进行统计3.1  1.先把不同行业列举出来,看一下一共有多少种行业3.2  2.统计每个行业分别有多少家公司3.3  3.把行业从array的二维数组形式变成list形式3.4  4.把行业从list形式转换成文本形式3.5&nbsp

绒绒的Routine 2796

洛谷:P1160 队列安排(彻底掌握线性表)

彻底摆脱超时束缚

qq_66500237的博客 2595

zynq+LWIP 裸机双网口实现(MIO+EMIO)+程序下载

芯片型号: ZYNQ: XC7Z010clg400开发软件:Vivado2022 + Xilinx Vitis 2022网卡芯片:RTL8211FDI(需要根据网口芯片型号修改对应的硬件配置代码。

thinking in 小宇宙 3405

保姆级教程:用Python spatialdata框架搞定10x Xenium空间转录组数据(从下机到高级分析)

本教程详细介绍了如何使用Python spatialdata框架处理10x Xenium空间转录组数据,从数据获取到高级分析的全流程。涵盖环境配置、数据读取、质量控制、降维聚类、细胞注释及空间共定位分析等关键步骤,特别适合生物信息学研究者快速掌握Xenium数据分析技术。

weixin_30300225的博客 480

洛谷 P1160 队列安排【Python】

这一题做的可真是花费了我九六二虎之力,因为python容易超时,不管我自己怎么苦思冥想,都总是不能AC,后面终于找到用Python做的方法了,也学到了许多

qq_63215420的博客 682

PostgreSQL高可用之主备复制

多个PostgreSQL可协同工作,如果主库发生宕机备库将迅速进行接管并对外提供服务以实现高可用。本文将从主备复制、主备切换、故障转移等角度进行实际测试演练。第一章主备复制是基础,通过主备复制可以得到一个或多个相同的实例。在主备复制的基础上通过第二章主备切换介绍了如何手工将主库与备库互换角色。在第三章中,采用了Keepalived进行实时监测,在主库宕机后,使用主备切换中提到的命令使备库升级为主库并对外提供服务,以达到PostgreSQL高可用的目标。

asdasdsaff的博客 1347

队列安排

题目描述 一个学校里老师要将班上N个同学排成一列,同学被编号为1∼N,他采取如下的方法: 先将1号同学安排进队列,这时队列中只有他一个人; 2−N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1∼(i−1)中某位同学(即之前已经入列的同学)的左边或右边; 从队列中去掉M(M&lt;N)个同学,其他同学位置顺序不变。 在所有同学按照上述方法队列排列完毕后,老师想知道从左到...

qq_43765829的博客 628

IEC61850实战:从ICD文件解析到模型构建

本文深入解析IEC61850标准中的ICD文件结构,从Header、IED到DataTypeTemplates部分,详细介绍了如何构建电力自动化设备的数据模型。通过实战案例展示ICD文件的创建过程,并分享常见问题的调试技巧,帮助工程师快速掌握IEC61850建模方法,提升电力系统自动化项目的实施效率。

weixin_26841743的博客 496

AMD KFD的SDMA Packet 类型和定义解析

本文详细分析了AMD GPU架构中的SDMA(System Direct Memory Access)数据传输机制,重点介绍了其核心数据结构——SDMA Packet。SDMA通过8种主要Packet类型(包括内存拷贝、数据写入、屏障同步、中断触发等)实现高效主机-设备通信。每种Packet采用位域结构和联合体封装设计,在保证功能完整性的同时实现空间优化。这些Packet支持丰富的访问属性和扩展字段,适用于高性能数据搬运、内存初始化、任务同步、性能分析等场景,为GPU计算提供了灵活高效的数据传输解决方案。

图形/计算GPU的驱动与虚拟化技术分享园地 1244

洛谷 P1160 【队列安排】

很久以前看到,今天才做。苦于没有满足该性质的数据结构,于是——手工模拟(看了别人的题解,原来这算链表?) #include<bits/stdc++.h> using namespace std; int n,m;//由题 struct node{ int r;//左边 int l;//右边 }a[100007]; void dcout(int k){//不断找右边的人 if(!a...

qq_42636949的博客 433

基于机器学习的电视剧类型点击量数据分析研究

1. 背景介绍 1.1 流媒体平台的兴起与电视剧市场的繁荣 近年来,随着互联网技术的飞速发展,流媒体平台如Netflix、Disney+、腾讯视频等迅速崛起,成为人们观看影视内容的主要渠道。电视剧作为流媒体平台上的重要内容类型,其点击量数据蕴含着丰富的用户偏好和市场趋势信息。

AI天才研究院 1050

洛谷 p1160题解

题目 洛谷 P1160 队列安排 题目描述 一个学校里老师要将班上NN个同学排成一列,同学被编号为1∼N,他采取如下的方法: 先将11号同学安排进队列,这时队列中只有他一个人; 2−N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1∼(i−1)中某位同学(即之前已经入列的同学)的左边或右边; 从队列中去掉M(M<N)个同学,其他同学位置顺序不变。 在所有同学按照上述方法队列排列完毕后,老师想知道从左到右所有同学的编号。 输入格式 第1行为一个正整数N,表示了有N个同学。 第

plutozxc的博客 1353

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

洛谷 P1160 队列安排

洛谷 P1160 队列安排 题解: 学会使用left和right数组 代码如下: #include<iostream> #include<algorithm> #include<stdio.h> #include<cmath> #include<queue> #include<cstring> #include<vect...

化身孤岛的鲸o的博客 481

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

洛谷P1160 队列安排

一个学校里老师要将班上N个同学排成一列,同学被编号为1∼N,他采取如下的方法:先将1号同学安排进队列,这时队列中只有他一个人;2∼N号同学依次入列,编号为i的同学入列方式为:老师指定编号为i的同学站在编号为1∼i−1中某位同学(即之前已经入列的同学)的左边或右边;从队列中去掉M个同学,其他同学位置顺序不变。在所有同学按照上述方法队列排列完毕后,老师想知道从左到右所有同学的编号。

ykg_kdr的博客 1272

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

洛谷P1160 队列安排——java手撸双链表

最近数据结构出期末成绩了,心血来潮上洛谷做一下数据结构题 洛谷P1160 队列安排 https://www.luogu.com.cn/problem/P1160 题目 分析 啊这,太恶心了,用LinkedList的话查找不好找,用ArrayList的话插入删除又不爽,所以我决定用 数组+双链表的方式 仔细一想,方案完全可行,用个指针数组指向每个节点(一直都维护head指针),最后遍历链表就是答案了 代码 import java.io.BufferedReader; import java.io.Buf

weixin_44655368的博客 775

洛谷 P1160 队列安排 --- STL中List的使用

STL中list的使用

its_a_win的博客 968

[洛谷]P1160 队列安排

通过本题搞定双向链表

Turing_Sheep的博客 198

洛谷P1160队列安排(结构体数组模拟链表)

洛谷P1160队列安排 嗯,这道题我想了好久,有几种思路,刚开始想用STL里的list直接做,但是我并不是很熟悉,遂放弃。 最后还是采用了结构体数组直接模拟链表的方式。 具体思路及实现过程看代码: #include<bits/stdc++.h> using namespace std; int n,m,k,p,vis[100002]; //a[i].pre表示i的前一个数 a[i]....

小小白成长之路 478

洛谷 - P1160 - 队列安排

https://www.luogu.org/problemnew/show/P1160 首先想到就是暴力模拟,用双端队列模拟插入,但是删除就很麻烦,肯定会超时的。 可以考虑标记每次插入同学的“相对坐标”,得出一个从左往右逐个删除的顺序。误!2.直接用set查询是不是要删除就可以了。 这样还要预防没东西删除的情况,所以还要记录待删除的人在不在?误!1.直接对删除指令unique一次就可以了。 ...

weixin_30952103的博客 113

洛谷P1160 双向链表

题目 洛谷P1160 代码 #include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; struct node { int L, R; } a[N]; void insert_left(int x, int k) //将x插入到k的左边 { a[x].R = k; a[x].L = a[k].L; a[a[k].L].R = x; a[k].L = x; } void i

陈颜的博客 679
上一篇: L3-003. 社交集群
下一篇: (模板)KMP算法
HumveeA6
博客等级 码龄17年 12粉丝 175原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值