ahnaf_cp's blog

By ahnaf_cp, history, 17 months ago, In English

Hey Codeforces! I'm Ahnaf, a beginner in CP and aiming to reach pupil in a month. I’m solving about 5 problems a day, mostly rated 800–900, and plan to solve around 100–120 problems at each rating before moving up (like 900–1000 next), by filtering recent problems by rating.

My routine: I try to think about a problem for 30 minutes, then check the editorial if stuck, and finally implement it myself. I use C++ and I’m kinda comfortable with basic STL like vector, map, set, sort(), and unique().

I’d love to know if this is a good way to improve. Should I keep doing this? Also, what beginner topics should I focus on next to solve more and get better faster?

So far, I’ve practiced basics of C++, math, brute force, and implementation. Any advice, topic lists, or practice plans from you guys would be awesome!

Thanks a lot! — Ahnaf

Full text and comments »

  • Vote: I like it
  • -18
  • Vote: I do not like it

By ahnaf_cp, history, 19 months ago, In English

I am an aspiring IOI participant who has recently started practicing competitive programming consistently. Currently, I solve around 4 to 10 problems per day. I have a good grasp of C++ and some familiarity with the Standard Template Library (STL), but I have limited knowledge of data structures and algorithms (DSA).

My goal is to achieve a Specialist rating on Codeforces as part of my long-term preparation for the IOI. I would greatly appreciate suggestions from the community on which topics, techniques, and problem-solving strategies I should prioritize to reach this milestone. Any guidance on structured learning paths or resources would also be very helpful."

Full text and comments »

  • Vote: I like it
  • -4
  • Vote: I do not like it

By ahnaf_cp, history, 22 months ago, In English

Hello, Codeforces community!

As a beginner in competitive programming, diving into Data Structures and Algorithms (DSA) can feel overwhelming. To make it more approachable, I decided to create my own DSA curriculum tailored for beginners like myself. This curriculum is structured, beginner-friendly, and covers the essential concepts you need to progress in problem-solving and competitive programming.

I’d love to share it with you all! Let’s dive in.


Why Create This Curriculum?

When I started my journey in programming, I faced these common challenges:

  • Lack of a clear roadmap.
  • Getting stuck on advanced topics without mastering the basics.
  • Feeling lost with random tutorials and problem sets.

This curriculum addresses these issues by providing a structured, progressive approach to learning DSA. It’s designed to build a solid foundation, grow confidence, and gradually tackle harder problems.


Curriculum Overview

1. Foundations of Programming

2. Arrays and Strings

3. Sorting and Searching

4. Basic Data Structures

5. Recursion and Backtracking

6. Introduction to Graphs

7. Dynamic Programming (DP)

8. Advanced Topics (Optional)

  • Segment Trees
  • Fenwick Trees
  • Disjoint Set Union (DSU)
  • Practice Advanced Problems as Needed

How to Follow This Curriculum

  1. Allocate Time: Spend 4–6 hours a day (or as much as you can consistently dedicate).
  2. Understand the Concept: Watch tutorials, read documentation, and make notes.
  3. Practice Problems: Solve at least 5 problems per topic.
  4. Reflect: After solving, review your solutions and analyze alternate approaches.
  5. Ask for Help: Use the Codeforces community and online resources if you get stuck.

Resources

  • YouTube Channels: Tushar Roy, CodeNCode, Abdul Bari
  • Books: "Introduction to Algorithms" by Cormen, Leiserson, Rivest, and Stein; "Competitive Programmer’s Handbook" by Antti Laaksonen.
  • Online Platforms: Codeforces, LeetCode, HackerRank, GeeksforGeeks.

Final Thoughts

This curriculum is a work in progress, and I’m actively learning and improving it. I hope it helps beginners like me to stay focused and build a strong foundation in DSA. If you have feedback, suggestions, or questions, feel free to share them in the comments below.

Let’s grow together!

Happy coding, everyone!


Full text and comments »

  • Vote: I like it
  • -5
  • Vote: I do not like it