I'm just wondering, how fast should my algorithm be in order to avoid TLE (Time Limit Exceeded)?
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3773 |
3 | Radewoosh | 3646 |
4 | ecnerwala | 3624 |
5 | jqdai0815 | 3620 |
5 | Benq | 3620 |
7 | orzdevinwang | 3612 |
8 | Geothermal | 3569 |
8 | cnnfls_csy | 3569 |
10 | gyh20 | 3447 |
# | User | Contrib. |
---|---|---|
1 | awoo | 161 |
2 | maomao90 | 160 |
3 | nor | 157 |
4 | atcoder_official | 156 |
4 | cry | 156 |
6 | -is-this-fft- | 155 |
7 | maroonrk | 154 |
8 | adamant | 153 |
9 | Um_nik | 151 |
10 | djm03178 | 146 |
I'm just wondering, how fast should my algorithm be in order to avoid TLE (Time Limit Exceeded)?
Name |
---|
Difficult to tell, around 10^8
for N=20, O(2^N) is nice
for N=30, O(N^5)
for N=100, O(N^3)
for N=1000, O(N^2)
for N=100000, O(N lg N)
for N>10^12, you may need to consider O(1)/O(lg N)
Exactly, it depends highly on basic operations you use. for example
%
(mod) is worth nearly dozens ofif
operations...That's not true — integer modulo is fast (exactly as fast as division, to be exact, and integer division is fast nowadays) and floating point modulo is not used that much.
Well, I had a case where I multiplied 100x100 matrices and in the innermost loop I used integer modulo (long long to be precise) and when I put it in the second loop (from the 3rd one) the time decreased by 1 sec
Almost everything you mentioned should run longer than 10s, especially
for N > 1012. Just the O(N3) and O(N5) are possible, if those are dynamics with low constants.
For O(2N), anything above N = 20 requires optimization. If N > 108, you should probably try
, but there are still peculiar complexities like
.
It's hard to say anything in general, because there are many subtle differences. You really find out what you can afford by experience.
Actually, CF's comment system messed it up. He didn't separate the list with commas rather he split it with newlines which are unfortunately not seen unless you type
<br>
Ow... I thought it was separated by commas. That's why I always use Preview before posting.
that means i need to type two new lines to see the actual new line? orz
Thanks!