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

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

时间:2023-04-05 15:00:11浏览次数:61  
标签:10 1s 限制 复杂度 推算 C++ 算法 时间

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

1、一般ACM或者笔试题的时间限制是1秒或2秒。

  • C++里面如果题目的时间限制是1s的话,这个1s是指每一个测试数据都有1s的时间限制,如果一个题有十几个测试数据,每一个测试数据都有1s的实现,正常比赛的话,比如蓝桥杯比赛的话,如果有10个测试数据,时间限制是1s的话,它指的也是每一个数据都是1s的实现,10个数据就可以跑10s。(不是总共算的)
  • 力扣平台是所有数据共用一个时间,对于竞赛来说就不是很规范。
  • 正常比赛的时候,如果C++时间限制是要求1s过的话,JAVA在2s内过就可以,JAVA一般会乘个倍数,Python也会乘个倍数。例如C++时间限制要求是1s,那么JAVA时间限制要求就是2s,Python时间限制要求就是1.5s或者2s,Go语言的话是1.5倍,JS的话是3倍(JS在3s内过就可以,一般都是这样的)

另外,空间也是这样的,如果空间是64MB,那么也是对应每个数据是64MB,C和C++是64MB,JAVA是128MB以内就可以

2、在这种情况下,C++代码中的操作次数控制在 10^7 ∼ 10^8 为最佳。(10^7 是一千万,10^8 是一个亿)

  • 如果常数比较小的话,也不是说超过一个亿就一定会TLE,比如说从1枚举的两亿,计算前两亿数的和,那么也不会超时,因为常数很小。
  • 10^7 ∼ 10^8指的是时间复杂度是多少,大概是这个级别,如果超过一点,也问题不会太大,但是一般的题目,现在的算法题,出题人一般都会将最优解的时间复杂度控制到一千万左右,一般都会这样,除非这个题目常数太小了,才有可能放到一个亿。(注意,1s是一个亿,如果这个题的时间限制是5s的话,就是五个亿都可以过)

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

后面给出了不同数据范围的情况下,一般最优解的时间复杂度是多少,这是一个经验。例如第5个,如果一个题目给出的数据范围是100000,一般来讲这个题目的最优解是o(nlogn),这个是一般来讲,并不是所有情况,是80%的情况是这样的。

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

标签:10,1s,限制,复杂度,推算,C++,算法,时间
From: https://www.cnblogs.com/bujidao1128/p/17289177.html

相关文章

  • AcWing算法提高课-1.1.1摘花生
    题目描述HelloKitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。HelloKitty只能向东或向南走,不能向西或向北......
  • JVM的垃圾收集算法
    介绍分代收集理论和几种垃圾收集算法的思想及其发展过程。分代收集理论当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(GenerationalCollection)的理论进行设计,分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,分代收集理论它建立在两个分代假说之上:弱......
  • python机器学习案例系列教程——K最近邻算法(KNN)、kd树
    全栈工程师开发手册(作者:栾鹏)python数据挖掘系列教程K最近邻简介K最近邻属于一种估值或分类算法,他的解释很容易。我们假设一个人的优秀成为设定为1、2、3、4、5、6、7、8、9、10数值表示,其中10表示最优秀,1表示最不优秀。我们都知道近朱者赤,近墨者黑,我们想看一个人是什么样的,看......
  • STAB算法
    SATB算法思想简介SATB算法的基本思想,可以概括为如下三句话:并发标记之前先给Region内存打个快照,标记线程基于这个快照独立进行标记。应用线程不会直接修改这个快照中的对象,也就是说应用线程不会干扰标记线程的工作。应用线程新分配的对象都认为是活跃对象,实际在下一个并发标记周......
  • JVM的垃圾收集算法
    介绍分代收集理论和几种垃圾收集算法的思想及其发展过程。分代收集理论当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(GenerationalCollection)的理论进行设计,分代收集名为理论,实质是一套符合大多数程序运行实际情况的经验法则,分代收集理论它建立在两个分代假说之上:......
  • m基于多核学习支持向量机MKLSVM的数据预测分类算法matlab仿真
    1.算法描述        20世纪60年代Vapnik等人提出了统计学习理论。基于该理论,于90年代给出了一种新的学习方法——支持向量机。该方法显著优点为根据结构风险最小化归纳准则,有效地避免了过学习、维数灾难和局部极小等传统机器学习中存在的弊端,且在小样本情况下仍然具有......
  • 笔记1. O(NlogN)的排序算法
    目录准备工作递归行为——求数组的最大值master公式归并排序——912.排序数组Merge函数归并排序主函数nlogn与n^2排序本质差距小和问题剑指Offer51.数组中的逆序对快排荷兰国旗问题快排1.0快排2.0快排3.0准备工作打印数组voidPrintfNums(int*nums,intnumsSize){......
  • m基于多核学习支持向量机MKLSVM的数据预测分类算法matlab仿真
    1.算法描述20世纪60年代Vapnik等人提出了统计学习理论。基于该理论,于90年代给出了一种新的学习方法——支持向量机。该方法显著优点为根据结构风险最小化归纳准则,有效地避免了过学习、维数灾难和局部极小等传统机器学习中存在的弊端,且在小样本情况下仍然具有良好的泛化能力,从......
  • 欧几里得算法与更相减损法复习
    (1)欧几里得算法(辗转相除法),用于求两个整数的最大公因数解释:两个整数a和b,假如a=b*x+ya和b的最大公因数是d,那么a%d==0,b%d==0,也有(b*x+y)%d==0∴y%d==0即a和b的最大公因数也是b和y的最大公因数,而y=a%b1intgcd(inta,int......
  • 2023.4.5 网络最大流 Dinic算法
    网络最大流Dinic算法省选爆了qwq题目描述给出一个网络图,以及其源点和汇点,求出其网络最大流。网络流,就像水在一个水渠构成的网络中流一样,源点有无限的水,每条边有最大流量限制,求流到汇点的最大流量。更菜一点的EK算法自行了解,此处我们用dinic算法解决问题。这些网络流算法的......