1. 根据数据范围选择做法
2. 1s大概小于 10^8,最好1^7
3. n <= 30 指数 dfs+剪枝
n = 100 -> n^3 floyd(图论)
n = 1000 -> n^2,n^2logn 循环
n =10000 -> n* sqrt(n) 块状链表
n = 1e5 -> nlogn 各种sort,线段树,树状数组,set/map, heap, Dijkstra,spfa
n = 1e6 -> n, logn hash, 双指针扫描,kmp,AC自动机,常数比较小的nlogn做法:上面的除线段树,求凸包,求半平面交,二分
n = 1e7 -> n 双指针扫面,kmp,AC自动机, 线性筛素数
n = 1e9 -> sqrt(n)
n = 1e18 -> logn 最大公约数
空间复杂度就是看定义几个变量,注意递归。