首页 > 编程语言 >由数据范围反推算法复杂度以及算法内容

由数据范围反推算法复杂度以及算法内容

时间:2023-11-16 14:34:53浏览次数:31  
标签:10 log 复杂度 推算 leq 算法 mathrm Rightarrow

由数据范围反推算法复杂度以及算法内容

一般ACM或者笔试题的时间限制是1秒或2秒。
在这种情况下, \(\mathrm{C}++\) 代码中的操作次数控制在 \(10^{7} \sim 10^{8}\) 为最佳。
下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择:

  1. \(n \leq 30\), 指数级别, \(\mathrm{dfs}+\) 剪枝,状态压缩 \(\mathrm{dp}\)
  2. \(n \leq 100 \Rightarrow O\left(n^{3}\right)\), floyd, \(\mathrm{dp}\) ,高斯消元
  3. \(n \leq 1000 \Rightarrow O\left(n^{2}\right) , O\left(n^{2} \log n\right)\) ,dp,二分,朴素版Dijkstra、朴素版Prim、Bellman-Ford
  4. \(n \leq 10000 \Rightarrow O(n * \sqrt{n})\) ,块状链表、分块、莫队
  5. \(n \leq 100000 \Rightarrow O(n \log n) \Rightarrow\) 各种sort,线段树、树状数组、set/map、heap、拓扑排序、dijkstra+heap、 prim+heap、Kruskal、spfa、求凸包、求半平面交、二分、CDQ分治、整体二分、后缀数组、树链剖分、动态树
  6. \(n \leq 1000000 \Rightarrow O(n)\), 以及常数较小的 \(O(n \log n)\) 算法 \(\Rightarrow\) 单调队列、hash、双指针扫描、BFS、并查集, kmp、AC自动机,常数比较小的 \(O(n \log n)\) 的做法: sort、树状数组、heap、dijkstra、spfa
  7. \(n \leq 10000000 \Rightarrow O(n)\) ,双指针扫描、 \(\mathrm{kmp} 、 \mathrm{AC}\) 自动机、线性筛素数
  8. \(n \leq 10^{9} \Rightarrow O(\sqrt{n})\), 判断质数
  9. \(n \leq 10^{18} \Rightarrow O(\log n)\) ,最大公约数,快速幕,数位 \(\mathrm{DP}\)
  10. \(n \leq 10^{1000} \Rightarrow O\left((\log n)^{2}\right)\) ,高精度加减乘除
  11. \(n \leq 10^{100000} \Rightarrow O(\log k \times \log \log k), k\) 表示位数,高精度加减、FFT/NTT

懒得翻,就保存下来了!

原文链接:由数据范围反推算法复杂度以及算法内容 - AcWing

标签:10,log,复杂度,推算,leq,算法,mathrm,Rightarrow
From: https://www.cnblogs.com/KAI040522/p/17836157.html

相关文章

  • 文心一言 VS 讯飞星火 VS chatgpt (136)-- 算法导论11.3 2题
    二、用go语言,假设将一个长度为r的字符串散列到m个槽中,并将其视为一个以128为基数的数,要求应用除法散列法。我们可以很容易地把数m表示为一个32位的机器字,但对长度为r的字符串,由于它被当做以128为基数的数来处理,就要占用若干个机器字。假设应用除法散列法来计算一个字符串......
  • 计算机图形:计算法向量
    目录一元向量值函数及其导数一元向量值函数概念一元值函数的导数空间曲线的切线和法平面曲面的切平面与法线示例:求椭球体表面法向量参考一元向量值函数及其导数一元向量值函数概念已知空间曲线Γ(大写的γ)参数方程:\[\tag{1}\begin{cases}x=\varphi(t),\\y=\psi(t),t\in[\al......
  • python机器学习算法原理实现——MCMC算法之gibbs采样
    【算法原理】Gibbs采样是一种用于估计多元分布的联合概率分布的方法。在MCNC(Markov Chain Monte Carlo)中,Gibbs采样是一种常用的方法。通俗理解Gibbs采样,可以想象你在一个多维空间中,你需要找到这个空间的某个特定区域(这个区域代表了你感兴趣的分布)。但是,你不能直接看到整个空间,只......
  • 机器学习算法原理实现——HMM生成序列和维特比算法
    【HMM基本概念】隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,用于描述一个含有未知参数(隐状态)的马尔可夫过程。在HMM中,我们不能直接观察到状态,但可以观察到每个状态产生的一些相关数据(观测值)。HMM的目标是,给定观测序列,估计出最可能的状态序列。HMM的基本假设有两个(见例子......
  • 机器学习算法原理实现——EM算法
    【EM算法简介】EM算法,全称为期望最大化算法(Expectation-Maximization Algorithm),是一种迭代优化算法,主要用于含有隐变量的概率模型参数的估计。EM算法的基本思想是:如果给定模型的参数,那么可以根据模型计算出隐变量的期望值;反过来,如果给定隐变量的值,那么可以通过最大化似然函数来估......
  • 机器学习算法原理实现——朴素贝叶斯
    【先说条件概率】条件概率是指在某个事件发生的条件下,另一个事件发生的概率。以下是一个实际的例子:假设你有一副扑克牌(不包括大小王,共52张牌),你随机抽一张牌。我们设事件A为"抽到的牌是红色的"(红心和方块为红色,共26张),事件B为"抽到的牌是心"(红心共13张)。1.首先,我们可以计算事件A和事......
  • 机器学习算法原理实现——最大熵模型
    【写在前面】在sklearn库中,没有直接称为"最大熵模型"的类,但是有一个与之非常相似的模型,那就是LogisticRegression。逻辑回归模型可以被视为最大熵模型的一个特例,当问题是二分类问题,且特征函数是输入和输出的线性函数时,最大熵模型就等价于逻辑回归模型。【最大熵模型的原理】最大熵......
  • 算法刷题记录-哈希表
    算法刷题记录-哈希表有效的字母异位词给定两个字符串*s*和*t*,编写一个函数来判断*t*是否是*s*的字母异位词。注意:若*s*和*t*中每个字符出现的次数都相同,则称*s*和*t*互为字母异位词。示例1:输入:s="anagram",t="nagaram"输出:true示例2:输入:s......
  • KMeans算法全面解析与应用案例
    本文深入探讨了KMeans聚类算法的核心原理、实际应用、优缺点以及在文本聚类中的特殊用途,为您在聚类分析和自然语言处理方面提供有价值的见解和指导。关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验......
  • 测试开发常见算法题
    1.冒泡排序deffaet_sort(test:list)->list:"""冒泡排序"""foriinrange(len(test)):forjinrange(len(test)-i-1):iftest[j]>test[j+1]:test[j],test[j+1]=test[j+1],te......