peltorator's blog

By peltorator, 11 months ago, In English

Hi Codeforces!

I’ve long believed that it's really worth revisiting the same competitive programming topics multiple times. The first time, you’re just trying to survive and maybe grasp the basics. The second time, you’ve solved some problems, you know where you got confused, and you're ready to absorb more. By the third time, you’ve seen and solved enough to start appreciating the subtleties — the tricks, advanced applications, deeper meaning. But most lectures I’ve seen are designed as a one-size-fits-all — trying to cover everything from scratch and dive into the advanced stuff in one go. That’s rarely optimal.

Take binary search. I once talked about it for six hours straight. A beginner at that lecture would’ve probably quit CP immediately. And that’s ok. Beginners don’t need all that. But the truth is, there is that much depth to explore even in seemingly simple topics like binary search — once you're ready. Yet many people only see the beginner version once and move on. Their understanding stays stuck at that level forever.

FFT is another great example. Almost every FFT lecture I’ve seen tries to do everything in one sitting: start from zero and end with "you now know everything there is to know about FFT and all its applications". But FFT is big, it’s hard. It makes more sense to have:

  • A basic lecture: just enough to multiply polynomials with minimal pain.

  • An intermediate one: assume you know the basics, and dive deeper.

  • And maybe an advanced one: weird tricks, optimizations, cool use cases.

There are many more topics like that: segment trees, square root decomposition, MSTs, etc.

So I’m starting an irregular stream series called "Algorithms in Depth". Each topic will be split by level:

  • Beginner: minimum viable understanding to start solving problems.

  • Intermediate: expanding the basic understanding to solve harder problems.

  • Advanced: deep understanding, fun tricks, and higher-level abstractions.

Most lectures try to combine the beginner and intermediate levels and skip the advanced part completely. I want to keep these levels separate — to not overwhelm beginners, bore intermediates, or neglect the advanced participants. I'm starting with Fast Fourier Transform (FFT). The first stream will cover only the basics. No fancy math. Just the simplest path to fast polynomial multiplication. As much motivation and intuition as possible. If you know what a polynomial is and how to multiply them by hand, you're good to go.

The stream will happen on my youtube channel on Thursday, May 29, 2025 at 14:00 UTC. Everyone’s welcome — ask questions in chat, and the recording will be available afterward. Hope to see you there!

  • Vote: I like it
  • +631
  • Vote: I do not like it

»
11 months ago, hide # |
Rev. 2  
Vote: I like it +30 Vote: I do not like it

Great idea! And a good topic to go with in this format.

And what about an advanced stream on fft's? Are you planning one? I would learn a ton from it I guess — I never went further than intermediate level. I believe it's a case for many people when they learned how to multiply polynomials and polynomials just don't usually come up. So they end up using FFT to take dot product with different shifts and that's it.

  • »
    »
    11 months ago, hide # ^ |
     
    Vote: I like it +30 Vote: I do not like it

    Yes, my plan is to cover FFT on all levels but for the first time we'll start from the basics. And then I'll see how it goes :)

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Can we have them in English please?

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

What are your plans for some future topics ?

If you're taking any suggestions then I'd like to suggest: DP or Segment Tree family maybe

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Will it be for complete beginners? Like I know nothing about FFT.

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Great, will be there!

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

peltorator is back!

»
11 months ago, hide # |
 
Vote: I like it +27 Vote: I do not like it

why is this on main

»
11 months ago, hide # |
 
Vote: I like it +43 Vote: I do not like it

Thanks to everyone who joined! It was a bit longer than I expected but I hope I am going to improve on this front in the future :)

»
11 months ago, hide # |
 
Vote: I like it +20 Vote: I do not like it

This is awesome!! Thank you so much!!!

»
11 months ago, hide # |
 
Vote: I like it +3 Vote: I do not like it

Where can I find that 6 hours stream on Binary Search?

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Well just studied FFT very recently as an ECE student!

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Where is the binaty search video?

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Glad people like you exists!

»
11 months ago, hide # |
 
Vote: I like it 0 Vote: I do not like it

Can you share your notes on somewhere ? Thanks.