TOC
KINA

KINA-0

Start having fun with KINA right now!

算法选择——由数据范围反推算法时间复杂度

算法时间复杂度分析

对于时间限制为[1\text{s},2\text{s}]的题目,C++代码中的操作次数应控制在[10^7,10^8]为最佳。

数据范围 时间复杂度 算法
$n≤30$ 指数级别 dfs+剪枝、状态压缩dp
$n≤100$ $O(n^3)$ floyd、dp、高斯消元
$n≤1000$ $O(n^2),O(n^2\log n)$ dp、二分朴素dijkstra朴素primBellman-Ford
$n≤10^4$ $O(n\sqrt n)$ 块状链表、分块
$n≤10^5$ $O(n\log n)$ sort、线段树、树状数组、set/mapheapdijkstra+heapspfa
$n≤10^6$ ① $O(n)$
常数比较小的 $O(n\log n)$
① 单调队列、hash双指针bfs并查集、kmp、AC自动机
sort、树状数组、heapdijkstra+heapspfa
$n≤10^7$ $O(n)$ 双指针、kmp、AC自动机、线性筛素数
$n≤10^9$ $O(\sqrt n)$ 判断质数
$n≤10^{18}$ $O(\log n)$ 欧几里得算法快速幂、数位dp

发表评论