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

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

时间:2023-04-16 16:56:36浏览次数:34  
标签:二分 nO 复杂度 推算 算法 heap nlogn

一般ACM时间限制是1-2秒
这种情况下,c++代码操作次数控制在1e7~1e8

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

1.n<=30,指数级别,dfs+剪枝,状态压缩dp

2.n<=100 =>O(n3),floyd,dp,高斯消元

3.n<=1000=>O(n2),O(n2logn),dp,二分,朴素版Dijkstra,朴素版Prim、Bellman-Ford

4.n≤10000 =>O(n*根号n),块状链表、分块、莫队

5.n<=10000=>O(nlogn)=>各种sort,线段树、树状数组、set/map、heap、拓扑排序,dijkstra+heap、prim+heap、Kruskal、spfa、求凸包、求半平面交、二分、CDQ分治、整体二分、后缀数组、树链剖分、动态树

6.n<=1000000=>O(n),以及常数较小的O(nlogn)算法=>单调队列、 hash、双指针扫描、并查集,kmp、AC自动机,常数比较小的O(nlogn)算法=>sort、树状数组、heap、dijkstra、spfa
7.n<=10000000=>O(n),双指针扫描,kmp,AC自动机、线性筛素数

8.n<=1e9=>O(根号n)判断质数

9.n<=1e18=>O(logn),最大公约数,快速幂,数位DP

10.n<=1e1000=>O((logn)的平方),高精度加减乘除

11.n<=1e100000=>O(logk*loglogk),k表示位置,高精度加减,FFT/NIT

标签:二分,nO,复杂度,推算,算法,heap,nlogn
From: https://www.cnblogs.com/gyg1222/p/17323542.html

相关文章

  • 【LBLD】田忌赛马背后的算法决策
    田忌赛马背后的算法决策870.优势洗牌classSolution{public:vector<int>advantageCount(vector<int>&nums1,vector<int>&nums2){intn=nums1.size();priority_queue<pair<int,int>,vector<pair<int,int>&......
  • Dijkstra算法求最短路
    一、Dijkstra 只适用于单源最短路中所有边权都是正数的情况二、存储方式1、稠密图用邻接矩阵2、稀疏图用邻接表三、算法实现用一个dist数组保存源点到其余各个节点的距离,dist[i]表示源点到节点i的距离。将dist数组赋值为正无穷,dist[1]=0用......
  • 排序算法-归并排序
    归并排序MergeSort1.MergeSort介绍MergeSort是利用归并的思想实现的排序算法,该算法采用经典的分治策略(divide-and-conquer),是一种稳定的排序算法。分治法是将问题分(divide)为一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各个答案“修补”在一起,即分而治之......
  • 算法-二叉树的构造
    namespaceBinary;publicclassBinaryTree{publicNode<char>Head{get;privateset;}privatestringcStr{get;set;}publicBinaryTree(stringconstructStr){this.cStr=constructStr;th......
  • 【LBLD】带权重的随机选择算法
    带权重的随机选择算法528.按权重随机选择不使用二分法:classSolution{private:vector<int>preSum;intN=0;public:Solution(vector<int>&w){srand(time(0));preSum.push_back(0);for(inti=1;i<=w.size();i++){......
  • Java中常用排序算法及示例-冒泡排序、希尔排序、选择排序、插入排序、合并排序、基数
    场景Java中需要对数据进行排序处理,常用的排序算法以及示例进行归纳整理。注:实现1、冒泡排序冒泡排序法又称为交换排序法,原理是从第一个元素开始,比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较。如此扫描一次之后就可以确保最后一个元素位于正确的顺序,接着逐步进......
  • Java中常用算法及示例-分治、迭代、递归、递推、动态规划、回溯、穷举、贪心
    场景1、分治算法的基本思想是将一个计算复杂的问题分成规模较小、计算简单的小问题求解,然后综合各个小问题,得到最终答案。2、穷举(又称枚举)算法的基本思想是从所有可能的情况中搜索正确的答案。3、迭代法(IterativeMethod)无法使用公式一次求解,而需要使用重复结构(即循环)重复执......
  • 算法-回文链表-24
    /***Definitionforsingly-linkedlist.*publicclassListNode{*publicintval;*publicListNodenext;*publicListNode(intx){val=x;}*}*/publicclassSolution{publicListNodeReverseList(ListNodehead){i......
  • 期望最大化算法(EM)简介
    ExpectationMaximization,EM算法是带有隐变量的概率模型参数的极大似然估计(MLE为给定参数,观测数据出现/生成的可能性)。如下为《统计机器学习》中对应EM算法的笔记。观测数据Y和隐变量X合称,完全数据观测数据Y称,不完全数据E步:(期望步)求Q函数(上一轮参数固定,模型参数为变量的......
  • 加密算法
    #include<stdio.h>#include<stdlib.h>#include<stdint.h>#include<string.h>#include<openssl/rsa.h>#include<openssl/err.h>#include<openssl/objects.h>#pragmacomment(lib,"libssl.lib")#pragmac......