P10109 [GESP202312 六级] 工作沟通

gesp(C++六级)(6)洛谷:P10109:[GESP202312 六级] 工作沟通 阅读详情

记录118

#include<bits/stdc++.h>
using namespace std;
const int MAXN=310;
int fa[MAXN],dep[MAXN];//fa[i]记录i的直接领导(父节点),dep[i]记录i的深度(层级)
bool vis[MAXN];//DFS遍历时用来标记节点是否被访问过
vector<int> ch[MAXN];//ch[i]记录i的所有直接下属(子节点) 
int getDep(int x){// 递归计算节点 x 的深度(根节点0的深度为0)
	return x==0?0:getDep(fa[x])+1;
}
void dfs(int x){// DFS深度优先遍历:标记节点 x 以及 x 的所有下属(即 x 的整棵子树)
	vis[x]=1;
	for(int y:ch[x]) dfs(y);//for循环的简写方式 
}
// 检查节点 x 是否能管理 vec 中的所有参与者
// 逻辑:如果 x 能管理所有人,那么 vec 里的每个人一定都在 x 的子树(管辖范围)里
bool check(int x,int n,const vector<int> &vec){// 加上 const:既防止了函数内部误改数据,又配合 & 避免了数据拷贝,是更专业、更高效的写法。 
	for(int i=0;i<=n;i++) vis[i]=0;// 每次检查前,先把标记数组清空
	dfs(x);// 标记 x 能管理的所有人
	for(int y:vec){
		if(vis[y]==0) return 0;
	}// 遍历所有参与者,如果有任何一个人没被标记,说明 x 管不了他
	return 1; // x 能管理所有人
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	int n;
	cin>>n;//输入员工数量 	
	for(int i=1;i<n;i++){
		cin>>fa[i];// 读入领导关系并建树 
		ch[fa[i]].push_back(i);// 把 i 加入到 fa[i] 的下属列表中
	}
	for(int i=1;i<n;i++) dep[i]=getDep(i);// 预处理计算出每个节点的深度
	int q;
	cin>>q;// 需要安排的合作场数 
	while(q--){
		int m,minD=n+1;// minD用来记录当前组参与者中的最小深度(职位最高者的深度)
		cin>>m;// 参与本次合作的员工数量 
		vector<int> vec(m);// 构建m大小的数组vec 
		for(int i=0;i<m;i++){
			cin>>vec[i];// 读入参与者
			minD=min(minD,dep[vec[i]]);//  找出其中深度最浅的那个值(minD)
		}
		// 倒序枚举节点(从编号大到编号小),寻找符合要求的主持人
		for(int i=n-1;i>=0;i--){
			// 剪枝与判断:
			// 1. dep[i] <= minD:领导 i 的深度必须小于等于参与者中最浅的深度(领导必须在最上面)
			// 2. check(i, n, vec):领导 i 必须能管理 vec 中的所有人
			if(dep[i]<=minD&&check(i,n,vec)){
				cout<<i<<"\n";
				break;
			}
		}
	}
	return 0;//结束程序 
}

前言

我是一名专注信奥赛(CSP-J/S、NOIP)的教练。

  • 如果你觉得这篇题解对你有帮助,欢迎点击关注我的优快云账号,我会持续更新高质量算法解析。
  • 我深知算法思维的构建远比单纯通过题目更重要,本系列题解不局限于AC代码的堆砌,而是致力于拆解题目背后的逻辑链条与核心知识点
  • 备赛路上若遇瓶颈,欢迎随时评论或私信,我将甄选典型疑难问题,通过视频讲解或撰写专项文章的形式,为你提供深度答疑。

题目传送门https://www.luogu.com.cn/problem/P10109


突破口

某公司有 N 名员工,编号从 0 至 N−1。其中,除了 0 号员工是老板,其余每名员工都有一个直接领导。我们假设编号为 i 的员工的直接领导是 fi​。

该公司有严格的管理制度,每位员工只能受到本人或直接领导或间接领导的管理。具体来说,规定员工 x 可以管理员工 y,当且仅当 x=y,或 x=fy​,或 x 可以管理 fy​。特别地,0 号员工老板只能自我管理,无法由其他任何员工管理。

现在,有一些同事要开展合作,他们希望找到一位同事来主持这场合作,这位同事必须能够管理参与合作的所有同事。如果有多名满足这一条件的员工,他们希望找到编号最大的员工。你能帮帮他们吗?


思路

1. 建模:将公司层级转化为“树”

  • 节点与边:每个员工是一个节点,直接领导关系构成了一条有向边(从父节点指向子节点)。老板 0 是整棵树的根节点。
  • 管理关系:题目规定“x 可以管理 y,当且仅当 x=y,或 x=fy,或 x 可以管理 fy”。这在图论中的意思是:如果 x 能管理 y,那么 y 一定在 x 的子树中。

2. 寻找主持人的逻辑

  • 主持人必须能管理所有参与合作的员工,这意味着所有参与者都必须在主持人的子树内。
  • 如果有多个满足条件的人,要选编号最大的。

3. 算法设计:预处理 + 暴力枚举剪枝
由于数据范围较小( N≤300,Q≤100N≤300,Q≤100 ),我们可以采用以下策略:

  • 建树与求深度:记录每个人的直接领导和下属,并算出每个人在公司的“层级(深度)”。
  • 寻找候选人的上限:如果一个主持人能管理所有人,他的职位必须大于等于所有人中最高的那个职位(即深度最浅的那个人)。因此,我们只需要检查深度 ≤≤ 参与者最小深度的那些节点即可。
  • 倒序遍历找答案:为了满足“编号最大”的要求,我们从 N−1N−1 到 00 倒着遍历节点。一旦找到第一个合法的候选人,直接输出并 break。
  • DFS 验证管辖权:对于当前枚举到的候选人,通过一次 DFS 标记他子树里的所有人,然后核对参与者是否全被标记。

代码分析

#include<bits/stdc++.h>
using namespace std;
const int MAXN=310;
int fa[MAXN],dep[MAXN]; // fa[i]记录i的直接领导(父节点),dep[i]记录i的深度(层级)
bool vis[MAXN];         // DFS遍历时用来标记节点是否被访问过
vector<int> ch[MAXN];   // ch[i]记录i的所有直接下属(子节点) 

解析:

  • 定义了全局变量和常量。使用 vector 数组 ch 来构建邻接表,存储树结构中每个节点的子节点列表。
int getDep(int x){ // 递归计算节点 x 的深度(根节点0的深度为0)
	return x==0 ? 0 : getDep(fa[x])+1;
}

解析:

  • 利用递归向上追溯父节点来计算深度。如果到了根节点 0,深度返回 0;否则,其深度等于“直接领导的深度 + 1”。
void dfs(int x){ // DFS深度优先遍历:标记节点 x 以及 x 的所有下属(即 x 的整棵子树)
	vis[x]=1;
	for(int y:ch[x]) dfs(y); // for循环的简写方式(C++11特性),遍历x的所有子节点
}

解析:

  • 标准的深度优先搜索。进入一个节点就打上 vis[x]=1 的标记,然后对其所有的直接下属递归调用自身。执行完后,所有在 x 管辖范围内的员工都会被标记。
// 检查节点 x 是否能管理 vec 中的所有参与者
// 逻辑:如果 x 能管理所有人,那么 vec 里的每个人一定都在 x 的子树(管辖范围)里
bool check(int x,int n,const vector<int> &vec){ 
    // 加上 const:既防止了函数内部误改数据,又配合 & 避免了数据拷贝,是更专业、更高效的写法。 
	for(int i=0;i<=n;i++) vis[i]=0; // 每次检查前,先把标记数组清空
	dfs(x);                         // 标记 x 能管理的所有人
	for(int y:vec){
		if(vis[y]==0) return 0;     // 遍历所有参与者,如果有任何一个人没被标记,说明 x 管不了他
	}
	return 1;                       // x 能管理所有人
}

解析:

  • 这是一个封装好的验证函数。先重置 vis 数组,再跑一遍 dfs(x),最后逐一核对本次合作的人员名单。只要发现一个不在 x 子树内的人,立刻返回 false (0)。
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0); // 这两行用于关闭同步流,提高 cin/cout 的输入输出效率,防止超时
	int n;
	cin>>n; // 输入员工数量 	
	for(int i=1;i<n;i++){
		cin>>fa[i];             // 读入领导关系并建树 
		ch[fa[i]].push_back(i); // 把 i 加入到 fa[i] 的下属列表中
	}

解析:

  • 读取数据并完成建树操作。注意题目给的是 f1到 fn−1 ,所以循环从 i=1 开始。
	for(int i=1;i<n;i++) dep[i]=getDep(i); // 预处理计算出每个节点的深度
	int q;
	cin>>q; // 需要安排的合作场数 
	while(q--){
		int m,minD=n+1; // minD用来记录当前组参与者中的最小深度(职位最高者的深度)
		cin>>m; // 参与本次合作的员工数量 
		vector<int> vec(m); // 构建m大小的数组vec 
		for(int i=0;i<m;i++){
			cin>>vec[i]; // 读入参与者
			minD=min(minD,dep[vec[i]]); // 找出其中深度最浅的那个值(minD)
		}

解析:

  • 处理每一次查询。在读取参与者编号的同时,顺便求出这批人中最小的深度 minD。这是非常关键的剪枝依据:任何深度大于 minD 的员工,绝对不可能成为这批人的共同管理者。
		// 倒序枚举节点(从编号大到编号小),寻找符合要求的主持人
		for(int i=n-1;i>=0;i--){
			// 剪枝与判断:
			// 1. dep[i] <= minD:领导 i 的深度必须小于等于参与者中最浅的深度(领导必须在最上面)
			// 2. check(i, n, vec):领导 i 必须能管理 vec 中的所有人
			if(dep[i]<=minD && check(i,n,vec)){
				cout<<i<<"\n";
				break; // 因为是倒序遍历,找到的第一个合法解一定是编号最大的,直接跳出
			}
		}
	}
	return 0; // 结束程序 
}

解析:

  • 核心查找逻辑。从 n-1 递减到 0。
  • dep[i] <= minD 作为前置条件过滤掉了大量不可能的节点,极大地减少了 check 函数的调用次数。
  • 一旦 check 返回 true,立即输出该节点编号并 break,完美契合题目“找编号最大的员工”的要求。
GESP六级真题考点分析和解题思路 本文分析了GESP六级考试的18道真题,涵盖动态规划、树形结构、图论算法等核心考点。重点题目包括下楼梯(动态规划)、工作沟通(LCA算法)、运送物资(网络流)等。试题难度以普及级为主,涉及拓扑排序、树形DP、二分答案等典型算法。备考建议掌握动态规划状态转移、树结构的DFS遍历、图论算法实现等关键技能,并熟悉提供的代码模板(如拓扑排序和树直径计算)。通过系统练习这些高频题型和算法模板,可以有效提升六级考试通过率。 阅读详情

相关推荐

Mid-360激光雷达与IMU标定实战:从环境配置到参数优化

本文详细介绍了Mid-360激光雷达与IMU标定的完整流程,涵盖环境配置、驱动适配、参数优化及实战操作。重点解析了标定参数设置技巧与常见问题解决方案,帮助开发者提升机器人感知系统的定位与建图精度,确保LiDAR-IMU数据融合的最佳效果。

a1b2c3d的博客 916

洛谷 P10109 [GESP202312 六级] 工作沟通-普及-

某公司有N名员工,编号从0至N−1。其中,除了0号员工是老板,其余每名员工都有一个直接领导。我们假设编号为i的员工的直接领导是fi​。该公司有严格的管理制度,每位员工只能受到本人或直接领导或间接领导的管理。具体来说,规定员工x可以管理员工y,当且仅当xy,或xfy​,或x可以管理fy​。特别地,0号员工老板只能自我管理,无法由其他任何员工管理。现在,有一些同事要开展合作,他们希望找到一位同事来主持这场合作,这位同事必须能够管理参与合作的所有同事。

weixin_37253733的博客 1128

grpc安装与简单demo测试

grpc安装: 由于工作需要,最近在学google的rpc开源框架;由于本人菜鸟一枚,而且是从Windows开发转到Linux;由于之前版本控制使用的是svn,没有使用过git,所以从GitHub上下载代码是通过浏览器下载zip格式的压缩文件,折腾了好几天了,发现了各种坑,各种缺少库,各种不知道怎么把这个库给装机器上。对于一个不熟悉Linux的人来说,这个体验简直糟糕透了。没办法了又在机器上装了...

old__captain的博客 4834

P10109 [GESP202312 六级] 工作沟通 题解(小白友好版)

这篇题解使用通俗易懂的语言和生动比喻,讲解了如何解决公司员工管理关系中的主持人选择问题。文章将公司结构比作树形关系,老板是树根,员工是节点,通过预处理每个员工的所有管理者关系,建立查询表来快速查找满足条件的主持人。关键点包括:1)领导关系存储;2)管理者关系预处理;3)倒序检查主持人条件。解题思路清晰,代码注释详细,配合示例解析和复杂度分析,使读者能轻松理解树形结构的处理方法。该解法适用于类似的组织结构问题,预处理思想值得借鉴。

Sanhai的博客 1001

当预编译包失效时:手把手教你在Nvidia Orin (JetPack 5.1.1) 上源码编译onnxruntime-gpu

本文详细指导在Nvidia Orin (JetPack 5.1.1) 上源码编译onnxruntime-gpu的全流程,解决预编译包兼容性问题。涵盖环境准备、工具链配置、源码编译、常见问题解决及性能优化技巧,帮助开发者在边缘计算设备上实现高效AI模型推理。

weixin_29062823的博客 135

银河麒麟V11 + KVM/QEMU + GT 710 GPU直通 Win10 完整操作流程文档

宿主机:RTX 5080专门运行ollama大模型服务,通过SSH/VNC远程管理Win10虚拟机:GT 710直通,物理键盘专属,通过物理显示器处理视频应用硬件隔离:两个系统完全隔离,互不干扰,性能最大化两种不同的直通方式直通方式 配置方法 设备在宿主机的状态 典型应用场景PCIe设备直通 vfio-pci.ids=10de:128b,10de:0e0f 设备完全从宿主机消失,被vfio-pci驱动接管 GPU、网卡、NVMe硬盘。

weixin_45285654的博客 1155

《P10109 [GESP202312 六级] 工作沟通》

这篇文章摘要描述了一个员工管理系统的题目及其解法: 题目要求在一棵树形结构的员工层级中,为多组合作选择合适的主持人。每个员工有一个直接上级,形成层级关系。主持人必须是能管理所有参与者的员工,且编号最大。 解法摘要: 预处理每个员工的所有上级(包括间接上级) 对于每组合作,计算所有参与者的共同上级集合 从共同上级中选择编号最大的作为主持人 关键点: 使用哈希表存储每个员工的所有上级 通过集合求交集找到共同上级 时间复杂度为O(NQ),适用于N≤300的规模 示例输入输出展示了不同情况下如何选择主持人,包括普通

Jasmine_llq的博客 208

VirtualBox虚拟机上ubuntu系统安装问题记:显示画面太小、启动就异常退出等

报错:Failed to load R0 module D:/VMMR0.r0: The path is not clean of leading double slashes: ‘D:/VMMR0.r0’ (VERR_SUPLIB_PATH_NOT_CLEAN).解决方法特别简单,就是安装VIrtualBox的时候不要安装在CDE等盘根目录下。首先VirtualBox的下载安装过程是比较简单的,此处就不赘述了。然后E盘下新建个目录,安装到这个目录下就可解决。

qq_42595610的博客 2826

打卡信奥刷题(787)用C++信奥P10109[普及组/提高] [GESP202312 六级] 工作沟通

某公司有N名员工,编号从0至N−1。其中,除了0号员工是老板,其余每名员工都有一个直接领导。我们假设编号为i的员工的直接领导是fi​。该公司有严格的管理制度,每位员工只能受到本人或直接领导或间接领导的管理。具体来说,规定员工x可以管理员工y,当且仅当xy,或xfy​,或x可以管理fy​。特别地,0号员工老板只能自我管理,无法由其他任何员工管理。现在,有一些同事要开展合作,他们希望找到一位同事来主持这场合作,这位同事必须能够管理参与合作的所有同事。

Loge谈信奥--一个专注于信奥人的博客 4811

单视图几何Vanish Point(消失点/灭点)计算方法——Robert_T_Collins(罗伯特·柯林斯)算法

单视图几何Vanish Point(消失点/灭点)计算方法——Robert_T_Collins(罗伯特·柯林斯)算法

beyond951的博客 7334

# YOLOv11改进系列 | 引入仓库自研C3k2_EIEM模块,Sobel边缘分支增强检测细节表达

文章摘要: YOLOv11-seg改进中提出的C3k2_EIEM模块通过引入边缘信息增强机制,显著提升了模型对轮廓和纹理的感知能力。该模块在保持原有C3k2结构的基础上,创新性地结合了Sobel边缘检测分支与常规卷积分支的双路特征融合。核心改进包括:(1)固定Sobel算子提供稳定的梯度响应;(2)并行处理边缘与纹理特征;(3)通过1x1卷积实现特征融合。实验显示,改进后模型参数量增加14.16%,计算量提升12.5%,但显著增强了在复杂边界场景下的分割精度。这种设计特别适用于需要精细轮廓识别的任务,如商品

qq_44224801的博客 95

洛谷P10109 [GESP202312 六级] 工作沟通

具体来说,规定员工 x 可以管理员工 y,当且仅当 x=y,或 x=fy​,或 x 可以管理 fy​。现在,有一些同事要开展合作,他们希望找到一位同事来主持这场合作,这位同事必须能够管理参与合作的所有同事。接下来 Q 行,每行描述一场合作:开头是一个整数 m(2≤m≤N),表示参与本次合作的员工数量;其中,除了 0 号员工是老板,其余每名员工都有一个直接领导。保证公司结构合法,即不存在任意一名员工,其本人是自己的直接或间接领导。对于第一场合作,员工 3,4 有共同领导 2 ,可以主持合作。

2501_93919826的博客 174

YOLOv11改进 | Neck篇 | 轻量化跨尺度跨通道融合颈部CCFM助力YOLOv11有效涨点

到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的平均质量分98分,后期我会根据各种最新的前沿顶会进行论文复现,也会对一些老的改进机制进行补充,目前本专栏免费阅读(暂时,大家尽早关注不迷路~)如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~YOLOv11有效涨点专栏——本专栏持续复习各种顶会内容——科研必备​ycb。

Snu77的博客 8087

[GESP202312 六级] 工作沟通

某公司有N名员工,编号从0至N−1。其中,除了0号员工是老板,其余每名员工都有一个直接领导。我们假设编号为i的员工的直接领导是fi​。该公司有严格的管理制度,每位员工只能受到本人或直接领导或间接领导的管理。具体来说,规定员工x可以管理员工y,当且仅当xy,或xfy​,或x可以管理fy​。特别地,0号员工老板只能自我管理,无法由其他任何员工管理。现在,有一些同事要开展合作,他们希望找到一位同事来主持这场合作,这位同事必须能够管理参与合作的所有同事。

zaiyang遇见 1965

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

2023年GESP六级工作沟通(洛谷P10109):LCA问题实战解析

本文介绍了利用二进制提升法解决公司层级关系中的最低公共祖先(LCA)问题。算法分为预处理和查询两个阶段:预处理阶段使用动态规划计算每个节点的2^k级祖先,构建树结构并存储节点深度;查询阶段通过提升节点深度并比较祖先来找出LCA。对于多节点情况,将问题转化为连续的成对LCA查询,初始设为第一个节点后依次计算。文章提供了完整的C++实现代码,包括预处理、DFS遍历、节点提升和LCA查询等关键函数,并展示了如何从根节点开始处理查询。该方法高效解决了组织架构中多员工共同主管的查找问题。

2401_86233678的博客 132

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【GESP2312六级】闯关游戏 工作沟通

【GESP2312六级】闯关游戏 工作沟通

青少年趣味编程 552

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

GESP认证C++编程真题解析 | 202312 六级

本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!1.:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。2.:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

团爸讲算法 872

记——那次难忘的GESP六级考试(202603)+编程题题解

本文记录了作者参加GESP六级考试的全过程,重点描述了备考和考试当天的经历。作者详细列出了自己完成的13道编程题目及解题思路,包括DP、贪心、树状数组等算法题,同时也提到未完成的8道题目。考试当天经历了忘带鼠标的意外,利用触控板继续练习。文章还提到选择题涉及动态规划、树遍历等基础知识,整体展现了作者从紧张备考到从容应考的心路历程,以及面对突发状况的应对能力。

2401_84010520的博客 641

GESP202312 一级---八级 真题

GSEP202312 一级---八级 真题

青少年趣味编程 1408

树的学习3

树:非线性数据结构节点数=边数+1每个节点,只有一个父节点没有父节点的结点,就是根节点没有子节点的结点,叫做叶子结点有叶子结点的结点,叫做分支节点树是基于递归构造。(80%关于树的题目用dfs)树的度,就是分支节点最多结点的子节点数量树的深度,树的最大层度输的储存:1.邻接链表存,vector。2.父节点储存:数字 1 2 3 4 5 6 7父节点 0 1 1 2 2 2 31: 2 3(邻接链表存储)2: 4 5 6(邻接链表存储)3: 7(邻接链表存储)

2501_91667651的博客 48

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 404

【算法拾光】队列|在每个树⾏中找最⼤值 + 最后⼀块⽯头的重量

本文总结两道经典算法题:一是通过层序遍历(BFS)逐层找最大值,利用队列分层处理,每层维护最大值;二是用大根堆(优先队列)模拟石头碰撞过程,每次取最大两块石头,差值重新入堆,直至剩余一块或无石。前者适用于树的层次遍历,后者适合动态获取最值场景。核心思想:队列用于分层遍历,堆用于高效取极值。

wuqingyigexiaoba的博客 186

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 335

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 315

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 609

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 149
上一篇: P3374 【模板】树状数组 1
下一篇: P10377 [GESP202403 六级] 好斗的牛
谢天谢地AC了 | 信奥教练
博客等级 码龄1年 53粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值