Yes, learn trees and graphs. Doing 3-4 questions before learning them means you are well saturated (and well versed) with whatever you learnt till now.
Knew what was the basic idea of that algorithm was. But just couldn't implement it. Couldn't understand it well enough
It happens. Graph theory, my personal opinion, is very tough. Had it been so easy that you could do it all in a day, then there wont be many Q on graph.
Sometimes even i look up for new algorithms during contest. Its always hard time implementing them on your own, leave alone, modify and optimize them to submit for a contest.
And I know the basics of segment trees, dp and have solved almost all the questions from the beginner section here on codechef.
Beginner section…to be honest is nothing hard or nothing which would lead to a wall-breaking result.
Try the easy section problems. Some of them are quite decent and require tricks to solve. Then proceed to medium.
But again, time is short. Try to focus on what you need CURRENTLY. Codechef doesnt classify problems based on topics. Either you go and practice them from other sites like hackerrank.com , or selectively solve questions based on the topic you need.
To be honest, i always feel that “Trees is so complicated wtf is this”. But one of my seniors said that its the easiest thing i will see. Its all about getting used to it.
In the end its all about practice. When i was new to cp i thought string is hell. Now the case is different.
Now how to go further from this? How to make the next jump?
Well, i am trying learning stuff from “Introduction to Algorithm” from Thomas Cornell (you will ahve to deal with this book in 2nd year of CS anyway), so i can start from basics. But since you said that you know the basic stuff (which i take in as, you can write simple/easy programs related to them), then all you need is good practice.
I know it sounds easy to say “Practice”, but there are many things in way. Biggest being, stuck on a question for hours and hours and hours. Its frustrating. Some questions of previous long took me one and half day to solve for full score.
To make process easy, a study group or peer group is recommended. Somewhere where you can ask doubts from problems, people who give HINTS on solving the problem instead of solution. People who are willing to debug your code to get your mistake, when you fail to do so.
The biggest devil you will face is time constraint. Even in vacations, refrain from wasting time. Try to wake up early- The time in morning is all yours! Once college starts, you will have to sincerely solve atleast 2 problems a day (if easy-medium.), or devote some time to CP.
I want to know, you said you werent able to implement Dijkstra’s Algorithm then. Whats its status now? Did you try getting back at it? Or did you face a problem there?
Its only by analyzing yourself, that you will be able to clear the choke points which are stalling you!