Блог пользователя MMO

Автор MMO, история, 8 месяцев назад, По-английски

So I was solving F. Ant Colony and got TLE on test 65. I didn’t know the reason, even though I believed time complexity was q log n.

Here's the submission

I tried replacing map with unordered_map, still no luck. It turned out that this line was causing the TLE:

const auto &v = idx.count(gc) ? idx[gc] : vector<int>();

When I replaced it with:

if (!idx.count(gc)) {
    ans[i] = r - l + 1;
    continue;
}
const auto &v = idx[gc];

It passed with 203ms

I thought that creating an empty vector every time was the problem but when I deleted the if (!idx.count(gc)) part it still passed with 296ms even though this should be identical to what I did in the first submission which is creating a key in idx and initializing an empty vector :D

Im confused

Could someone explain why the first code TLE’d while the second one didn’t please?

Полный текст и комментарии »

  • Проголосовать: нравится
  • +10
  • Проголосовать: не нравится