由范围猜算法

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,能用的算法一样吗?

登录 后可看答案

由范围猜算法 · 考级冲刺 · op599 课程