一句话理解
TLE 表示程序在规定时间内没跑完。
为什么要学
算法太慢,或死循环,都会超时。复杂度意识就是为了避免它。
讲解
TLE = Time Limit Exceeded。每题都有时间限制,常见 1 秒。
1 秒大概能跑 (10^8) 到 (2 \times 10^8) 次简单运算,这是经验值,不是定理。
嵌套循环、每层都很大时最容易 TLE。有时是 while 写错变成死循环。
例子
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
// n=1e5 时,这里大约 1e10 次,必 TLE
}
}
双重循环大约跑 n² 次。n 到 10 万,平方就是 100 亿,远远超出 1 秒。
常见错误
- 只在 n=10 的样例上测时间。
- 死循环也会 TLE,不一定是算法理论太慢。