2022-04-11
算法
00
请注意,本文编写于 892 天前,最后修改于 586 天前,其中某些信息可能已经过时。

目录

关于刷题顺序
关于题解
算法题要考虑的时间复杂度

关于刷题顺序、题解和时间复杂度的简要介绍

关于刷题顺序

关于题解

  • 因为自己比较菜,所以没有追求好看的通过情况,双百通过的情况有,但超级少
  • 只要不用暴力法,过了就行嘛(暴力法能过就暴力法过嘛)

算法题要考虑的时间复杂度

注:一般算法题的时间限制是1秒或2秒。C++每秒操作次数在10 ^ 7 ∼ 10 ^ 8

在这种情况下,C++代码中的操作次数控制在 10 ^ 7 ∼ 10 ^ 8为最佳。

数据规模时间复杂度应采用的方法
1n ≤ 30O(n!)全排列、DFS + 剪枝、状态压缩 DP
2n ≤ 100O(n ^ 3)DFS 搜索、DP 动态规划、Floyd、高斯消元
3n ≤ 1000O(n ^ 2)稠密图、任意两点最短路径、DP 动态规划
4n ≤ 10^4O(n ^ sqrt(n))块状链表、分块
5n ≤ 10^5O(nlog n)各种排序、线段树、dijkstra + heap
6n ≤ 10^6O(n)KMP、双指针扫描、hash、并查集、Spfa
7n ≤ 10^7O(n)KMP、线性筛素数、双指针扫描、拓扑排序
8n ≤ 10^9O(sqrt(n))判断质数、求平方根
9n ≤ 10^18O(log n)最大公约数、快速幂、数位 DP
10n ≤ +∞O(1)数学相关算法、高精度加减乘除

本文作者:southyang

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!