由范围猜算法
约 10 分钟
题目给的数据范围是出题人埋的暗示:它圈定了你能用多慢的算法。把范围和"每秒约 次运算"对照,就能反推该用什么量级的解法。
常用对照(大致):
- :可能要指数级 或全排列,暴力枚举
- : 够用
- :必须 或
- 大到 :只能 或数学公式
// n <= 100000 时,O(n^2) 的双重循环 = 10^10 次,必然超时
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++) work(); // n=1e5 → TLE
// 得换成排序 + 双指针 / 二分等 O(n log n) 做法
所以"n 最大 100"和"n 最大 100000"能用的算法完全不同:前者随便 甚至 ,后者必须上高效算法。坑:别一上来就死磕最优解,先看范围——范围小就暴力稳拿分,范围大才值得费劲想 。范围是"该费多大劲"的路标。
小纸条
n 最大 100 和 n 最大 100000,能用的算法一样吗?
登录 后可看答案