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

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

时间:2023-02-13 10:11:28浏览次数:41  
标签:10 log 复杂度 推算 算法 heap dp

一般ACM或者笔试题的时间限制是1秒或2秒。
在这种情况下,C++代码中的操作次数控制在 \(10^7∼10^8\) 为最佳。

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

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

标签:10,log,复杂度,推算,算法,heap,dp
From: https://www.cnblogs.com/wqzgg/p/17115437.html

相关文章

  • 搭个ChatGPT算法模型,离Java程序员有多远?
    作者:小傅哥博客:https://bugstack.cn沉淀、分享、成长,让自己和他人都能有所收获!最近ChatGPT很火,火到了各行各业。记得去年更多的还是码农最新体验后拿它搜代码,现在各......
  • 老生常谈React的diff算法原理-面试版
    第一次发文章notonly(虽然)版式可能有点烂butalso(但是)最后赋有手稿研究finally看完他你有收获diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的......
  • 代码随想录算法Day11 | 20. 有效的括号,1047. 删除字符串中的所有相邻重复项,逆波兰表达
     20.有效的括号题目链接: 20.有效的括号-力扣(LeetCode)题目给定一个只包括'(',')','{','}','[',']' 的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用......
  • LeetCode算法题二——合并两个有序链表
    题目给你一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问......
  • 基于Astar算法的栅格地图目标最短路径搜索算法MATLAB仿真,带GUI界面
    1.算法描述Astar算法是一种图形搜索算法,常用于寻路。它是个以广度优先搜索为基础,集Dijkstra算法与最佳优先(bestfit)算法特点于一身的一种算法。它通过下面这个函数来......
  • 基于GA算法的TSP最短路径搜索matlab仿真
    1.算法描述(1)编码:将问题的候选解用染色体表示,实现解空间向编码空间的映射过程。遗传算法不直接处理解空间的决策变量,而是将其转换成由基因按一定结构组成的染色体。编码方式......
  • 第一章 基础算法三
    双指针类型:2个指针指向不同的序列,比如归并排序2个指针指向同一个序列,用的比较多,比如快速排序通用模板俗称的枚举右端点,遍历左端点for(inti=0,j=0;i<......
  • 第一章 基础算法一
    第一章基础算法一快速排序quick_sort(intq[],intl,intr)q是待排序数组,l是待排序区间的左边界,r是右边界确定分界点x,可以取左边界的值q[l],或右边界的值q[r],或者中......
  • 基于Astar算法的栅格地图目标最短路径搜索算法MATLAB仿真,带GUI界面
    1.算法描述       Astar算法是一种图形搜索算法,常用于寻路。它是个以广度优先搜索为基础,集Dijkstra算法与最佳优先(bestfit)算法特点于一身的一种算法。它通过......
  • 第一章 基础算法二
    高精度A+B:两个大整数相加A-B:两个大整数相减A×b:一个大整数乘一个小整数A÷b:一个大整数除以一个小整数大整数的存储:用一个数组来存大整数的每一位上的数。这......