根据数据范围选择解题方法
文章目录
N<=10
• O(N!)
• 全排列枚举
N<=15
• O(2^N)
• 01规划
• 状压dp
N<=50
• O(N^4)
• 枚举一个矩形(x,y),(x+w,y+h)
N<=100
• O(N^3)
• Floyd求任意两点最短路
• 高斯消元
N<=1000
• O(N^2)
• 枚举两个点
• 求最长公共子序列
• 网络流、费用流(*)
N<=10000
• O(Nsqrt(N))
• 分块
• 整数拆分问题
• 2-sat
N<=100000
• O(NlogN)、 O(NlogNlogN)
• 树型数据结构和分治的天下…
• 树状数组,线段树,平衡树,堆
• 后缀数组
• 快速傅里叶变换(FFT)
N<=1000000
• O(NlogN)、 O(N)
• 素数筛
• 贪心
• 二分查找,三分查找极值
• 图、树的遍历
N<=1e9
• O(sqrt(N))、 O(logN)、 O(1)
• 素数筛+分解质因数
• 快速幂
• 逆元
• 推数学公式
N<=1e18
• O(logN)、 O(1)
• 数位dp
• 数学公式
文章作者 Forz
上次更新 2017-06-25