算法模版:由数据范围反推适用算法

简介: 算法模版:由数据范围反推适用算法

前言


唤我沈七就好啦。

从y总的分享里发现的宝贝,

经过重新排版后急忙拿来分享。


正文


一般程序设计竞赛或者笔试题的时间限制是1秒或2秒。

在这种情况下,C++代码中的操作次数控制在 107∼108 为最佳。

下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择。


n≤30

适用算法:指数级别, dfs+剪枝,状态压缩dp。


n≤100

时间复杂度:O(n3)

适用算法:floyd,dp,高斯消元。


n≤1000

时间复杂度: O(n2),O(n2logn)

适用算法:dp,二分,朴素版Dijkstra、朴素版Prim、Bellman-Ford。


n≤10000

时间复杂度: O(n∗n \sqrt{n}

n


适用算法:块状链表、分块、莫队。


n≤105

时间复杂度: O(nlogn)

适用算法: 各种sort,线段树、树状数组、set/map、heap、拓扑排序、dijkstra+heap、prim+heap、Kruskal、spfa、求凸包、求半平面交、二分、CDQ分治、整体二分、后缀数组、树链剖分、动态树。


n≤106

时间复杂度: O(n), 以及常数较小的 O(nlogn) 算法

适用算法: 单调队列、 hash、双指针扫描、并查集,kmp、AC自动机。

常数比较小的 O(nlogn)的做法:sort、树状数组、heap、dijkstra、spfa。


n≤107

时间复杂度: O(n)

适用算法: 双指针扫描、kmp、AC自动机、线性筛素数。


n≤109

时间复杂度:O(n \sqrt{n}


适用算法:判断质数。


n≤1018

时间复杂度:O(logn)

适用算法:最大公约数(gcd),快速幂,数位DP。


n≤101000

时间复杂度:O((logn)2)

适用算法:高精度加减乘除。


n≤10100000

时间复杂度:O(logk×loglogk),k表示位数。

适用算法:高精度加减、FFT/NTT。


完结散花


可见数据范围给我们的提示可能比原题还要多。当我们看到数据范围,枚举能够做出来的方法有哪些,然后进行题解。这样会不会大大减少我们的做题时间呢?

所以容我说一句

y总牛逼。

顺便一提文中涉及的算法只要我学明白后会陆续更新算法笔记的,先罗列一下已经更新的


数论:质数筛

模拟数据结构:链表


参考文献


https://www.acwing.com/blog/content/32/


相关文章
|
2月前
|
机器学习/深度学习 算法 前端开发
别再用均值填充了!MICE算法教你正确处理缺失数据
MICE是一种基于迭代链式方程的缺失值插补方法,通过构建后验分布并生成多个完整数据集,有效量化不确定性。相比简单填补,MICE利用变量间复杂关系,提升插补准确性,适用于多变量关联、缺失率高的场景。本文结合PMM与线性回归,详解其机制并对比效果,验证其在统计推断中的优势。
1123 11
别再用均值填充了!MICE算法教你正确处理缺失数据
|
3月前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
283 1
|
4月前
|
机器学习/深度学习 Dragonfly 人工智能
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
127 0
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
392 0
|
2月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
163 0
|
3月前
|
存储 监控 算法
企业电脑监控系统中基于 Go 语言的跳表结构设备数据索引算法研究
本文介绍基于Go语言的跳表算法在企业电脑监控系统中的应用,通过多层索引结构将数据查询、插入、删除操作优化至O(log n),显著提升海量设备数据管理效率,解决传统链表查询延迟问题,实现高效设备状态定位与异常筛选。
142 3
|
3月前
|
算法 数据挖掘 定位技术
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
106 1
|
3月前
|
机器学习/深度学习 数据采集 运维
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
|
4月前
|
机器学习/深度学习 传感器 边缘计算
【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)
【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)
136 0
|
4月前
|
算法 数据可视化 数据挖掘
基于AOA算术优化的KNN数据聚类算法matlab仿真
本程序基于AOA算术优化算法优化KNN聚类,使用Matlab 2022A编写。通过AOA搜索最优特征子集,提升KNN聚类精度,并对比不同特征数量下的聚类效果。包含完整仿真流程与可视化结果展示。

热门文章

最新文章