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

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

前言


唤我沈七就好啦。

从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/


相关文章
|
18天前
|
存储 编解码 负载均衡
数据分片算法
【10月更文挑战第25天】不同的数据分片算法适用于不同的应用场景和数据特点,在实际应用中,需要根据具体的业务需求、数据分布情况、系统性能要求等因素综合考虑,选择合适的数据分片算法,以实现数据的高效存储、查询和处理。
|
18天前
|
存储 缓存 算法
分布式缓存有哪些常用的数据分片算法?
【10月更文挑战第25天】在实际应用中,需要根据具体的业务需求、数据特征以及系统的可扩展性要求等因素综合考虑,选择合适的数据分片算法,以实现分布式缓存的高效运行和数据的合理分布。
|
1月前
|
机器学习/深度学习 人工智能 算法
"拥抱AI规模化浪潮:从数据到算法,解锁未来无限可能,你准备好迎接这场技术革命了吗?"
【10月更文挑战第14天】本文探讨了AI规模化的重要性和挑战,涵盖数据、算法、算力和应用场景等方面。通过使用Python和TensorFlow的示例代码,展示了如何训练并应用一个基本的AI模型进行图像分类,强调了AI规模化在各行业的广泛应用前景。
31 5
|
23天前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
30 0
|
1月前
|
人工智能 算法 前端开发
无界批发零售定义及无界AI算法,打破传统壁垒,累积数据流量
“无界批发与零售”是一种结合了批发与零售的商业模式,通过后端逻辑、数据库设计和前端用户界面实现。该模式支持用户注册、登录、商品管理、订单处理、批发与零售功能,并根据用户行为计算信用等级,确保交易安全与高效。
|
1月前
|
前端开发 算法 JavaScript
无界SaaS模式深度解析:算力算法、链接力、数据确权制度
私域电商的无界SaaS模式涉及后端开发、前端开发、数据库设计、API接口、区块链技术、支付和身份验证系统等多个技术领域。本文通过简化框架和示例代码,指导如何将核心功能转化为技术实现,涵盖用户管理、企业店铺管理、数据流量管理等关键环节。
|
1月前
|
机器学习/深度学习 算法 数据处理
EM算法对人脸数据降维(机器学习作业06)
本文介绍了使用EM算法对人脸数据进行降维的机器学习作业。首先通过加载ORL人脸数据库,然后分别应用SVD_PCA、MLE_PCA及EM_PCA三种方法实现数据降维,并输出降维后的数据形状。此作业展示了不同PCA变种在人脸数据处理中的应用效果。
34 0
|
1月前
|
存储 算法 搜索推荐
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
算法进阶之路:Python 归并排序深度剖析,让数据排序变得艺术起来!
72 0
|
2月前
|
存储 算法 测试技术
预见未来?Python线性回归算法:数据中的秘密预言家
【9月更文挑战第11天】在数据的海洋中,线性回归算法犹如智慧的预言家,助我们揭示未知。本案例通过收集房屋面积、距市中心距离等数据,利用Python的pandas和scikit-learn库构建房价预测模型。经过训练与测试,模型展现出较好的预测能力,均方根误差(RMSE)低,帮助房地产投资者做出更明智决策。尽管现实关系复杂多变,线性回归仍提供了有效工具,引领我们在数据世界中自信前行。
50 5