一般编程题目的时间限制是1秒或2秒
在这种情况下,C++代码中的操作次数控制在 为最佳。
下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择:
时间复杂度 |
对应的数据规模上限(1s时限) |
算法 |
|
- |
- |
高精度加减、FFT/NTT |
||
高精度乘除 |
||
最大公约数、快速幂、数位DP |
||
|
判断质数 |
|
|
单调队列、 hash、双指针扫描、并查集、kmp、AC自动机 |
|
各种sort、线段树、树状数组、set、map、heap、拓扑排序、dijkstra+heap、prim+heap、Kruskal、spfa、求凸包、求半平面交、二分、CDQ分治、整体二分、后缀数组、树链剖分、动态树 |
||
|
块状链表、分块、莫队 |
|
dp、二分、朴素版Dijkstra、朴素版Prim、Bellman-Ford |
||
|
floyd、dp、高斯消元 |
|
|
dfs+剪枝、状态压缩dp |
|
|
|
- |
|
- |
每周六更新一篇文章,内容一般是自己总结的经验或是在其他网站上整理的优质内容文章来源:https://www.toymoban.com/news/detail-842175.html
点个赞,关注一下呗~文章来源地址https://www.toymoban.com/news/detail-842175.html
到了这里,关于由数据范围反推算法复杂度以及算法内容的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!