跟据数据范围确定所用算法

通常情况下,给定的时间限制都是1秒,那么对我们数据范围的要求就是10的7次幂之内就要完成。
下面我会将不同的数据范围所选择的不同的算法列举一下:
1.n<=30
指数级别,dfs+剪枝,状态压缩dp
2.n<=100 => O(n3)
floyd,dp
3.n<=1000 => O(n2) O(n2logn)
dp,二分
4.n<=10000 => O(n∗√n)
块状链表
5.n<=100000 => O(nlogn)
各种sort,线段树、树状数组、set/map、heap、dijkstra+heap、spfa、求凸包、求半平面交、二分
6.n<=1000000 => O(n)以及常数较小的 O(nlogn)O(nlogn) 算法
hash、双指针扫描、kmp、AC自动机,常数比较小的 O(nlogn) 的做法:sort、树状数组、heap、dijkstra、spfa
7.n<=10000000 => O(n)
双指针扫描、kmp、AC自动机、线性筛素数
8n≤109 => O(√n)
判断质数
9.n≤1018 => O(logn)
最大公约数

发布了107 篇原创文章 · 获赞 3 · 访问量 7120

猜你喜欢

转载自blog.csdn.net/qq_43504141/article/details/104065222