I recently started competitive programming and have been practicing a lot of Div2 contests. However, it seems that problems A-D (the ones I can solve after some time) are mostly constructive, greedy, implementation, ad-hoc or plain dfs/bfs.
I have been trying to search for contests/problems that involve a diversity of data structures and algorithms so that I can learn more techniques, which is arguably even more fun. It's okay if I can't solve them initially, but at least I hope to learn more from the editorials.
Could anybody recommend good OJs that have contests which can help me maximize my learning of classic algorithms and data structures?
P.S. — By classic algorithms/DS I mean dijkstra, bellman-ford, sparse tables, bridge finding, segment trees, BIT, more advanced dp etc.
EDIT: Cmon guys you know Div2 on codeforces isn't very diverse (these days atleast), why the downvotes?
I'm a fan of video tutorials personally. Here are some good ones:
Algorithms Live by Matt Fontaine
I am making some Algorithms Dead videos on topics that I feel would be helpful to know in addition to what is already out there. They used to be fairly low quality, but I am getting better over time.
Errichto's Second Channel has a couple good IOI prep videos that may be helpful as well.
If you like books:
Competative Programming 3 I have heard good things about from beginners
Looking for a Challenge is a fantastic book from monsoon with many other co-authors, that I would highly recommend for interesting problems and solution ideas. It doesn't focus too heavily on classical algorithms though.