How to become an Expert on Codeforces | Tips and Topics for each Rating from Newbie to Specialist

Priyansh Agarwal
18 Mar 202415:58

Summary

TLDRIn this video, Priyan Agarwal offers a comprehensive roadmap for advancing from a novice to an expert on Codeforces. He emphasizes mastering a programming language, understanding time and space complexity, and learning essential math concepts. For different rating levels, he suggests specific topics and strategies, such as binary search for pupils and dynamic programming for specialists. Agarwal also provides tips like focusing on implementation skills and avoiding irrelevant topics, and recommends resources like CP Algorithms and his CP31 problem set for structured learning.

Takeaways

  • 😀 Priyan Agarwal provides a roadmap for Codeforces users to progress from newbie to expert.
  • 🎯 The video targets three main rating groups on Codeforces: Newbie, Pupil, and Specialist.
  • 🛠 For newbies, mastering a programming language and understanding time and space complexity are crucial.
  • 🧠 Newbies should focus on learning basic math concepts, recursion, and inbuilt functions of their programming language.
  • 📈 Tips for newbies include not rushing through topics, building strong implementation skills, and staying motivated.
  • 🔍 Pupils should concentrate on advanced topics like binary search, number theory, prefix sums, and greedy algorithms.
  • 🌟 For pupils, tips involve solving ad-hoc problems, participating in contests, and applying learned concepts.
  • 📚 Special attention is given to mastering binary search and greedy algorithms for those rated as pupils.
  • 🏆 As a specialist, topics like two pointers, advanced number theory, dynamic programming, and graphs become critical.
  • 📘 Tips for specialists include proving approaches, reading blogs for deeper understanding, and avoiding irrelevant topics.
  • 📝 The video also mentions resources like CP Algorithms and the CSS problem set for further learning.

Q & A

  • What is the main goal of the video presented by Priyan Agarwal?

    -The main goal of the video is to provide a comprehensive roadmap for individuals to improve their coding skills on Codeforces, with the aim of advancing from a newb to an expert level.

  • Why is it important to master a programming language according to the video?

    -Mastering a programming language is crucial because it enables you to implement 90% of the logic that comes to your mind without needing to rely on external help, which is essential for competitive programming.

  • What is the significance of understanding time and space complexity in competitive programming as per the video?

    -Understanding time and space complexity is significant because it allows you to write efficient code. Efficiency in coding is judged through these complexities, which is a key aspect of competitive programming.

  • What are the three important tips given for newbs on Codeforces?

    -The three tips for newbs are: 1) Do not run after advanced topics too soon, 2) Focus on building strong implementation skills, and 3) Do not get disheartened by the initial challenges and focus on building fundamentals.

  • Why is binary search advanced emphasized for pupils on Codeforces?

    -Binary search advanced is emphasized for pupils because it involves understanding monotonic functions and is a fundamental technique that can be applied to many problems, making it a crucial skill to master.

  • What is the role of number theory in advancing from a pupil to a specialist on Codeforces?

    -Number theory plays a pivotal role as it involves mastering concepts like Sieve of Eratosthenes and the Ukkonen algorithm, which are often the basis for many problems on Codeforces.

  • How does the video suggest improving implementation skills for competitive programming?

    -The video suggests improving implementation skills by focusing on solving a lot of problems, ensuring that when a logic comes to mind, one should be able to code it out efficiently.

  • What is the advice for pupils on Codeforces regarding the habit of solving ad-hoc problems?

    -The advice is to get into the habit of solving ad-hoc problems, which do not require specific topics but rather logical thinking, to enhance problem-solving skills.

  • Why is dynamic programming considered the most important topic after binary search in competitive programming?

    -Dynamic programming is considered the most important topic after binary search because many problems on Codeforces are based on dynamic programming ideas, and mastering it is essential to becoming a competitive programmer.

  • What are some additional topics that can increase the chances of becoming an expert on Codeforces as mentioned in the video?

    -Some additional topics that can increase the chances of becoming an expert include graphs, trees, binary lifting, segment trees, and range query data structures like Fenwick or Sparse tables.

  • What is the significance of the TLE Eliminators course mentioned in the video?

    -The TLE Eliminators course is significant as it provides a structured learning environment with live classes, curated practice problems, and instant doubt support, helping to teach relevant topics and improve problem-solving skills for competitive programming.

Outlines

00:00

💻 Path from Codeforces Newbie to Expert

Priyan Agarwal introduces a roadmap for aspiring competitive programmers aiming to improve their ratings on Codeforces. He highlights the current scenario where the majority of participants in India are below a 1300 rating and emphasizes the need to progress to the 'expert' level. The video is structured to guide viewers through the journey from a beginner ('newb') to an expert, providing specific advice and tips for each rating level. The speaker outlines the importance of mastering a programming language, understanding time and space complexity, and learning about data structures and algorithms. Special attention is given to the concept of recursion and building a strong foundation in mathematics.

05:01

📚 Advancing from Pupil to Specialist on Codeforces

The speaker discusses the next steps for those who have progressed beyond the newbie stage on Codeforces. For 'pupils' with a rating above 1000, the focus shifts to mastering advanced topics like binary search, number theory, prefix sums, and greedy algorithms. The importance of binary search is underscored, with a recommendation to solve numerous problems to gain expertise. Number theory is also emphasized, with suggestions to learn advanced concepts like sieve algorithms. The speaker provides practical tips, such as focusing on implementation skills, not getting disheartened by initial difficulties, and the value of participating in contests to apply learned concepts.

10:03

🎓 Transitioning to Specialist and Beyond on Codeforces

As the discussion moves towards higher ratings, the speaker congratulates those who have achieved the 'specialist' level and outlines the advanced topics they should tackle. These include two-pointer techniques, advanced number theory, combinatorics, and dynamic programming. The speaker stresses the critical nature of dynamic programming for competitive programmers and encourages solving a significant number of problems in this area. Additional topics like graphs, trees, and advanced data structures are suggested for those aiming even higher. Tips for specialists include proving approaches, reading blogs for independent learning, and avoiding irrelevant topics that do not contribute to becoming an expert.

15:05

🚀 Final Steps to Expert Level on Codeforces

In the concluding part, the speaker provides targeted advice for those close to achieving an 'expert' rating on Codeforces. The guidance includes solving problems within a specific rating range, utilizing resources like CP Algorithms and the CSS problem set, and focusing on problem-solving rather than memorizing solutions. The speaker also introduces a personal resource, the 'cp31' sheet, which curates problems based on Codeforces ratings. The video ends with encouragement and a structured approach for viewers to follow, ensuring they have a clear path from beginner to expert in competitive programming.

Mindmap

Keywords

💡Codeforces

Codeforces is a competitive programming platform where participants solve algorithmic problems and are rated based on their performance. In the video, it serves as the central theme, with the presenter providing a roadmap for viewers to improve their ratings from 'newbie' to 'expert'. The platform is mentioned multiple times as the context for the advice and strategies shared.

💡Competitive Programming

Competitive programming is a mental sport where participants try to solve complex algorithmic problems within a limited time. The video is focused on guiding viewers through the journey of competitive programming on Codeforces, emphasizing the importance of learning specific algorithms and strategies to excel in this field.

💡Rating

A rating in the context of Codeforces refers to a participant's skill level, which is determined by their performance in contests. The video discusses the importance of improving one's rating and provides strategies for moving from a 'newbie' to an 'expert' rating, which is a significant aspect of competitive programming on the platform.

💡Programming Language

The choice and proficiency in a programming language is crucial for competitive programmers. The video emphasizes mastering one programming language, suggesting that a participant should be able to implement 90% of the logic on their own, which is a foundational skill for success in competitive programming.

💡Time and Space Complexity

Time and space complexity are measures of the efficiency of an algorithm in terms of the time it takes to run and the memory it uses. The video stresses the importance of understanding these complexities to write efficient code, which is a key aspect of competitive programming as it allows for faster and more resourceful problem-solving.

💡Recursion

Recursion is a programming technique where a function calls itself to solve smaller instances of a problem. The video highlights recursion as a fundamental concept that is extensively used in competitive programming, particularly in solving problems that can be broken down into similar sub-problems.

💡Binary Search

Binary search is an algorithm used for finding an item from a sorted list of items. It is mentioned as an important topic for those who have reached the 'pupil' level on Codeforces. The video suggests mastering binary search, including its advanced applications, as a step towards becoming a better competitive programmer.

💡Number Theory

Number theory is a branch of pure mathematics dealing with properties and relationships of numbers. In the video, it is presented as a topic that 'pupil' level participants should delve into, including advanced concepts like the Sieve of Eratosthenes and the Euclidean algorithm, which are used to solve problems related to prime numbers and divisors.

💡Greedy Algorithms

Greedy algorithms are a problem-solving approach that makes the locally optimal choice at each step with the hope that these local choices will lead to a global optimum. The video advises learning and mastering standard greedy algorithms and solving problems that involve non-standard greedy ideas, which is a common approach in competitive programming.

💡Bit Manipulation

Bit manipulation involves directly operating on the individual bits of an integer. The video suggests that 'pupil' level participants should learn and master various bit manipulation techniques, as they are crucial for solving certain types of problems in competitive programming, particularly those involving optimization and efficiency.

💡Dynamic Programming

Dynamic programming is a method for solving complex problems by breaking them down into simpler subproblems. It is highlighted in the video as an essential topic for those at the 'specialist' level on Codeforces, emphasizing that mastering dynamic programming is key to becoming a competitive programmer, as many problems on the platform are based on this concept.

Highlights

Priyan Agarwal provides a roadmap for improving on Codeforces from a newb to an expert.

90% of people in India are rated below 1300 on Codeforces, indicating a need for better competitive programming skills.

For newbies, mastering a single programming language is crucial.

Understanding time and space complexity is essential for writing efficient code.

Learn about inbuilt functions in your programming language like C++ STL for quick implementations.

Focus on basic math concepts and modular arithmetic for a strong foundation in competitive programming.

Recursion is a fundamental concept that is widely used in various topics.

As a newbie, avoid advanced topics and focus on building a strong foundation.

For pupils on Codeforces, binary search advanced is a crucial topic to master.

Number Theory and prefix sums are important topics to level up from a pupil to a specialist.

Greedy algorithms are key in competitive programming and require mastering standard greedy ideas.

Bit manipulation is a significant topic for those approaching specialist level on Codeforces.

Solving ad-hoc problems helps in developing logical thinking without relying on specific topics.

Participating in contests and learning from unsolved problems is a recommended practice for pupils.

For specialists, two pointers and sliding windows techniques are essential for optimizing binary search problems.

Advanced number theory and combinatorics are key areas to focus on as a specialist.

Dynamic programming is a must-master topic for any competitive programmer.

Basic graph and tree algorithms are beneficial for those aiming to be experts on Codeforces.

Reading Codeforces blogs and editorials is recommended for independent learning at higher levels.

Avoid learning irrelevant topics that are not necessary for reaching expert level on Codeforces.

CP Algorithms and the CSS problem set are valuable resources for learning and practicing.

Targeting problems within a 200-point range of your current rating on Codeforces is a strategic approach.

Transcripts

play00:00

hi everyone welcome back to the channel

play00:02

my name is priyan Agarwal and in this

play00:03

video I am going to give you a complete

play00:06

road map to go from newb on code forces

play00:08

to expert 90% people in India today are

play00:11

less than 1300 rated on code forces now

play00:13

that's a very very shocking number

play00:15

because this tells us that so many

play00:17

people in India are trying out

play00:18

competitive programming they're getting

play00:20

started with it but very very few people

play00:23

are actually getting to a good enough

play00:24

level and a good enough level in

play00:26

competitive programming is actually

play00:27

something like an expert so in this

play00:29

video I going to go in a specific order

play00:31

first of all I will talk about what

play00:33

should you do if you're a newbie then

play00:35

what should you do if you're a pupil and

play00:37

then what should you do if you're a

play00:38

specialist on good forces right so I

play00:40

will not be just talking about the

play00:42

topics that you should learn I will also

play00:43

be giving you tips along the way that if

play00:45

you are in this rating range what are

play00:46

certain tips for you so just watch every

play00:48

single minute of this video very very

play00:50

attentively make notes of it if you want

play00:52

to so let's get started by talking about

play00:54

what should you do if you're a newb on

play00:55

code forces so first of all you should

play00:57

Master a programming language okay

play00:59

become very very good at one programming

play01:00

language but in that one programming

play01:02

language you should be so good that if a

play01:04

logic comes in your mind and if you want

play01:06

to code it out you should be able to

play01:08

implement 90% stuff on your own and 10%

play01:10

of it you are allowed to Google next you

play01:12

should learn about time and space

play01:13

complexity because see if you talk about

play01:15

data structures algorithms and if you

play01:16

talk about competitive programming the

play01:19

most important thing is not just writing

play01:21

the code but writing an efficient code

play01:23

how do you judge this efficiency you

play01:24

judge the efficiency of your code

play01:26

through time and space complexity next

play01:28

you should learn about you know inbit

play01:29

Stu stuff in your programming language

play01:31

for example if you look at C++ there is

play01:33

this thing known as C++ STL standard

play01:35

template library now standard template

play01:37

Library contains a bunch of functions

play01:40

that you know help you implement some

play01:42

stuff very very quickly similarly for

play01:44

programming languages like Java python

play01:46

there are their own resources now once

play01:47

you've mastered a programming language

play01:49

you know how to judge the efficiency of

play01:51

your code and you also know some

play01:52

important inbuilt functions in your

play01:54

programming language this is the point

play01:56

where you start focusing on maths now

play01:58

for the subtopics for maths I would

play01:59

recommend you to learn about basic high

play02:01

school level math concepts like you know

play02:03

hcf LCM primes divisors multiples right

play02:07

you should also refer to this very

play02:08

important topic of modular arithmetic

play02:10

after you done learning these basic math

play02:12

concepts right what you should do is

play02:14

that you should Master this one concept

play02:16

which is known as recursion okay

play02:18

recursion is one concept that is going

play02:20

to be used in a lot of topics as you go

play02:23

forward so this is the entire set of

play02:24

topics that you should learn as a newb

play02:26

again a lot of importance on recursion

play02:28

and a lot of importance on building the

play02:30

fundamentals right now let me also give

play02:32

you three important tips if you're a

play02:33

newb on code forces the very first thing

play02:35

is that don't run after topics there is

play02:38

no need for you right now to learn

play02:40

Advanced topics like greedy dynamic

play02:42

programming graphs trees all of these

play02:44

there will be a time when you will get

play02:45

to learn all of these topics the second

play02:47

tip is that you know you should focus a

play02:49

lot on building your implementation

play02:51

skills like if there is a logic that is

play02:53

coming into your mind you should be able

play02:55

to implement it easily right and the

play02:57

third tip is that you know don't get

play02:59

disheartened at this moment I understand

play03:01

that when you're starting your

play03:02

competitive programming Journey you will

play03:04

see that everyone around you is doing so

play03:06

well while you are stuck at this newb

play03:08

rating range and you're not able to

play03:09

progress but that's absolutely fine okay

play03:12

right now just focus on building your

play03:13

fundamentals and once you're done doing

play03:15

that you will see that when you are

play03:17

attempting quod forces contest you will

play03:19

be able to solve problems right and you

play03:20

will be able to get to a pupil range

play03:22

very very soon now let's talk about what

play03:23

are the topics that you should learn if

play03:25

you're a pupil on code forces if your

play03:27

rating on code forces is greater than

play03:29

1,00 the very first most important topic

play03:32

right now is binary search Advanced why

play03:34

am I saying binary search Advanced and

play03:36

not just simple binary search because

play03:38

this topic also involves binary

play03:40

searching on answer like you will see

play03:42

that your answer in certain problems are

play03:44

having a monotonic function right you

play03:46

can study about all of these topics if

play03:47

you don't know about them right now just

play03:48

note it down monotonic functions right

play03:51

but this is one topic that you should

play03:52

absolutely Master right you should spend

play03:54

a lot of time on this solve a lot of

play03:56

problems even if you solve 50 problems

play03:58

on binary search Advan it is going to be

play04:00

absolutely worth it the next topic that

play04:02

you should look at is number Theory now

play04:04

while you were a newb on code forces you

play04:06

would have learned the basic concepts

play04:07

like primes divisors all of these things

play04:10

but at this point you need to level up a

play04:11

bit when you're pupil on code forces you

play04:13

should focus on topics like C of

play04:14

eratosthenes ukan algorithm these two

play04:17

topics are very very important and you

play04:18

will see that there are so many problems

play04:20

which are just simple variations of ukan

play04:22

algorithm and C fosis so make sure you

play04:24

master these topics the next topic that

play04:26

you should Master is prefix sums now I

play04:28

know prefix sums looks like a very easy

play04:30

topic but let me tell you there are so

play04:32

many variations of prefix sums there are

play04:34

so many variations where you know you

play04:35

have to use a C++ standard template

play04:38

Library function or a C++ STL data

play04:40

structure in order to optimize your

play04:42

prefix some queries so make sure you

play04:44

solve a lot of variations on prefix sums

play04:46

just knowing the basics of prefix sums

play04:48

is not enough try and find a lot of

play04:49

problems which involve variations of

play04:51

this after you're done mastering prefix

play04:53

sums the next topic that you should look

play04:54

at is greedy algorithms again absolutely

play04:57

very important okay because if you talk

play04:59

about competitive programming it is not

play05:01

just about applying standard data

play05:03

structure standard algorithms into

play05:04

problems a lot of problems are going to

play05:06

be based on Grey ideas and this is also

play05:08

going to help you in contest when you

play05:10

look at the second problem or even the

play05:11

third problem in most Cod forces contest

play05:13

a lot of them are based on greedy ideas

play05:15

now in terms of greedy algorithms there

play05:17

are two things that you need to focus on

play05:18

first is mastering all the standard

play05:20

greedy algorithms okay there are going

play05:22

to be a list of standard greedy ideas I

play05:24

can even you know share some resources

play05:26

in the description of this video you can

play05:27

look at all those algorithms and master

play05:29

them these are all standard greedy

play05:30

algorithms other than that you also need

play05:32

to solve a lot of non-standard greedy

play05:34

algorithmic problems basically you go on

play05:36

to code forces you know you put the tag

play05:38

of greedy and you solve any random

play05:40

problem in that problem you might

play05:41

require a standard greedy idea or you

play05:43

might have to think about a greedy idea

play05:45

on spot right the next topic that you

play05:47

should Master if you are either a higher

play05:48

pupil or almost a specialist on code

play05:50

forces is bit manipulation now I have

play05:53

personally created a video around bit

play05:54

manipulation tricks on the YouTube

play05:56

channel of T eliminators so you should

play05:58

check it out it contains around 10 very

play06:00

very important bit manipulation

play06:01

techniques right so make sure you check

play06:02

that out and that would help you open up

play06:04

your mind about bit manipulation now let

play06:06

me also give you three important tips if

play06:07

you're a pupil on code forces firstly is

play06:09

to get into the habit of solving ad hoc

play06:12

problems What are adhoc problems these

play06:14

are problems which don't require a

play06:15

specific topic but only a logical you

play06:18

know mind like just looking at a random

play06:19

problem you realize that okay it can be

play06:21

logically solved like this but it does

play06:23

not really involve a particular idea or

play06:25

a particular you know data structure or

play06:27

an algorithm so these are adog problems

play06:29

get into the habit of solving these

play06:30

random problems okay the second tip is

play06:32

to get into the habit of absolving

play06:34

contest what is the meaning of absolving

play06:36

basically whenever you attempt a contest

play06:38

after that you look at those problems

play06:40

which you weren't able to solve and you

play06:42

try to figure out the solution either

play06:43

you do that on your own or you look at

play06:45

the solution of those problems and try

play06:47

to learn the concepts which are being

play06:48

used in these problems the third tip

play06:50

that I'm going to give you is to you

play06:51

know give enough contexts like at this

play06:54

moment I can understand that it gets a

play06:55

little overwhelming that you're learning

play06:57

so many topics but make sure that you're

play06:59

not just learning you're giving enough

play07:01

contest and you're applying those

play07:02

learned Concepts in contest problems

play07:04

right because just learning a topic is

play07:06

not enough you need to solve problems on

play07:08

it and you need to solve problems on

play07:10

those topics within contest now in case

play07:12

you are somebody who requires some

play07:13

support in order to learn all of these

play07:15

topics in a structured manner then let

play07:17

me tell you about my course called tle

play07:19

eliminators that I've been running from

play07:21

April 2021 so it's been 3 years since

play07:23

I've been running that course we have

play07:25

taught more than 5500 programmers

play07:27

through that course already now this

play07:29

entire course you know is divided into

play07:30

four levels so for somebody who is at a

play07:33

particular level in their competitive

play07:34

programming Journey they can choose to

play07:36

join a level and learn only those

play07:38

relevant topics so first of all you get

play07:40

live classes on all of these topics

play07:42

right every single week we have around

play07:44

one to two live Theory classes and we

play07:46

teach you all of these Topics in a very

play07:47

structured manner secondly we provide

play07:50

you with curated practice problems on

play07:51

all of these topics that we've taught

play07:53

you for example if I teach you dynamic

play07:55

programming for maybe 3 weeks then in

play07:58

these three weeks I am going to give you

play07:59

two to three problems every single day

play08:01

now in case you're stuck on any practice

play08:03

problem from the course you get

play08:05

dedicated video solution where we talk

play08:06

about the exact intuition involved how

play08:09

do you think apart from this if you're

play08:11

stuck on any practice problem from or

play08:13

outside the course we provide you with

play08:15

instant doubt support now what happens

play08:17

in doubt support is that we have a team

play08:19

of around 30 to 40 experienced

play08:21

competitive programming mentors these

play08:23

mentors are already experts and

play08:24

candidate Masters on code forces and

play08:27

they help you solve these problems in

play08:28

which you stuck like you could come up

play08:30

with a debugging problem you could come

play08:31

up with a problem in which you require

play08:33

some hints and overall you know you get

play08:34

to learn a lot from the experience of

play08:36

these mentors and apart from that there

play08:38

are other pretty cool features uh you

play08:39

know you can go and check out our

play08:41

website to explore them uh one thing

play08:43

that I want to mention is that tle

play08:44

eliminators is a live course right so

play08:47

every 3 months we launch one single

play08:49

batch and in one single batch we run all

play08:51

of these level 1 2 3 4 parall so you

play08:54

know you can go on to our website and

play08:55

check out when is the next course coming

play08:57

up and if you're interested you can sign

play08:58

up for that let's talk about what should

play09:00

you do if you're a specialist on code

play09:01

forces now first of all before I talk

play09:03

about all the topics that you should

play09:04

learn let me congratulate you if you've

play09:07

become a specialist on code forces it

play09:08

means that you've already beaten 90%

play09:11

people in India okay now that's a big

play09:13

number because what this means is that

play09:15

if you were just targeting competitive

play09:17

programming for probably placements or

play09:19

internships if you're going to sit in an

play09:21

online coding test you are going to

play09:23

perform better than 90% people in India

play09:26

the very first topic that you should

play09:27

learn as a specialist is two pointers

play09:29

and and sliding windows so two pointers

play09:31

is one technique you know that can help

play09:32

you optimize a lot of your binary

play09:34

searching ideas like most of the binary

play09:36

searching problems that you solve on

play09:38

arrays and subarrays you will see that

play09:40

they can be converted into two pointers

play09:42

and they can be further optimized the

play09:43

next topic that you should learn is

play09:45

Advanced number Theory now if you've

play09:46

become a specialist I am assuming that

play09:48

you already know the basics of number

play09:50

Theory you know Concepts like modular

play09:52

arithmetic a bit about ukan algorithm a

play09:55

bit about primes devisers C fosies this

play09:58

is the point where you learn about FMA

play10:00

theorem Oilers theorem right you also

play10:02

learn about Advanced things like finding

play10:04

modular inverse and this is also the

play10:06

point where you focus a lot on

play10:08

combinatorics because going forward when

play10:10

you look at the third problem or the

play10:11

fourth problem in code forces contest a

play10:14

lot of problems are based on

play10:15

combinatorics the next topic which is

play10:17

the most important in competitive

play10:19

programming after binary search is

play10:21

dynamic programming okay this is one

play10:23

topic that you should Master you cannot

play10:26

call yourself a competitive programmer

play10:27

if you're not good at dynamic

play10:28

programming because I can tell you that

play10:30

you know if you're solving a random

play10:32

problem on code forces the chances that

play10:34

it is based on a dynamic programming

play10:36

idea are insanely High okay and if

play10:39

you're a specialist on code forces don't

play10:41

expect yourself to become an expert if

play10:43

you cannot Master dynamic programming so

play10:45

spend a lot of time on dynamic

play10:47

programming make sure you solve you know

play10:48

at least 50 to 100 problems on this

play10:50

topic you can start by you know looking

play10:52

at standard uh dynamic programming

play10:54

problems this you can find on CSS

play10:56

problem s and also on code forces blogs

play10:58

once you mastered the standard dynamic

play11:00

programming problems go on to code

play11:02

forces start solving random DP problems

play11:04

put a rating filter of 1 1600 or 1,700

play11:06

on code forces and apply you know the

play11:08

problem uh topic tag of dynamic

play11:10

programming and start solving a lot of

play11:12

problems because mind you as you go

play11:14

forward if you look at graphs if you

play11:16

look at trees if you look at other

play11:18

Concepts you will see dynamic

play11:19

programming being used extensively right

play11:22

so make sure you master this topic right

play11:23

now itself and when you are doing

play11:25

dynamic programming also you know focus

play11:27

a bit on DP with bit masking and now I'm

play11:30

going to mention some topics that even

play11:31

if you don't do it's fine but if you do

play11:34

them then the chances of you becoming an

play11:35

expert become even higher the very first

play11:38

topic is graphs now I am not asking you

play11:40

to learn Advanced graph algorithms and

play11:42

solve very Advanced graph problems no

play11:44

learn about depth for search breadth for

play11:46

search connected components how you can

play11:48

apply shortest path algorithms try to

play11:50

solve a lot of basic graph problems

play11:52

basic graph problems means they involve

play11:54

basic ders Sals they involve basic

play11:56

properties of graphs after you're done

play11:57

learning the basics of graphs also learn

play11:59

the basics of trees because nowadays it

play12:01

is getting more and more common that you

play12:03

will find uh you know trees problems

play12:05

being asked in the third or the fourth

play12:06

problem in a lot of code forces context

play12:09

so learn about the basics of trees uh

play12:10

what comes in the basics first of all

play12:12

basic traversal like depth for search uh

play12:14

you know handling some subtree queries

play12:16

like uh pre-computing some information

play12:18

for every single subtree of a tree then

play12:21

learn about binary lifting binary

play12:22

lifting is very very important it helps

play12:24

you calculate stuff like lowest common

play12:26

ancestor of two nodes right and it also

play12:28

helps you do a lot of other stuff if you

play12:30

want to go a bit higher and if you want

play12:31

to go and learn some more advanced

play12:34

topics I would recommend learning about

play12:35

segment or learning about any you know

play12:37

range query data structure like fenry or

play12:40

maybe Spar stles like you can learn the

play12:41

basics of these you don't have to go

play12:43

into the depth of them again now let me

play12:45

give you some tips if you've already

play12:46

become a specialist on code forces the

play12:48

very first thing is to start proving

play12:50

your approaches now you can't be in that

play12:52

mindset that I am going to guess an

play12:54

approach and I'm going to just submit it

play12:55

on code forces and expect it to pass no

play12:58

that's not going to happen start proving

play12:59

your approaches when you're thinking an

play13:01

approach before coding it make sure you

play13:03

know why it works the second tip that

play13:05

I'm going to give you is to start

play13:06

reading start reading code forces blogs

play13:08

or blogs on other competitive

play13:09

programming platforms start reading

play13:11

blogs on CP algorithm's website at this

play13:14

moment you should try and become a lot

play13:16

more independent like you can go for

play13:17

video Solutions you can go for paid or

play13:19

free courses but if you go for reading

play13:22

that is going to help you a lot because

play13:23

going forward when you become expert or

play13:26

even if you become a candidate Master

play13:28

you are not going to find enough

play13:29

resources to learn Concepts you are

play13:31

going to have to refer to code forces

play13:32

blogs you are going to have to refer to

play13:34

editorials of problems right so get into

play13:36

the habit of reading and don't get into

play13:38

the habit of Simply watching a video

play13:40

solution the last tip that I want to

play13:41

give you as a specialist is to avoid

play13:43

learning irrelevant topics what are

play13:45

those irrelevant topics these are things

play13:47

like you know uh Cent decomposition on

play13:49

trees heavy light decomposition on trees

play13:51

learning about KMP algorithm learning

play13:53

about Z algorithm and you know learning

play13:55

about Advanced things like flows square

play13:57

root de composition these are are things

play13:59

that you don't need in order to become

play14:01

an expert now let me mention some

play14:02

resources that you can refer to in order

play14:04

to become an expert and learn these

play14:05

topics the very first resource is CP

play14:08

algorithms this is one thing that you

play14:10

cannot ignore another thing that I would

play14:12

recommend you is to start solving CSS

play14:14

problem set so CSS problem set contains

play14:16

you know a bunch of topicwise problems

play14:18

and these are very standard and the most

play14:20

important problems for every single

play14:21

topic so if you're learning dynamic

play14:23

programming for example go and start

play14:25

solving problems on the CSS problem set

play14:27

if you're learning about graphs or if

play14:28

you're learning trees there's an entire

play14:30

section for all of these topics so go

play14:32

and start solving problems on CSS

play14:33

problem set if you're a new or a pupil

play14:35

on code forces you might not find

play14:38

relevant topicwise problems on CS

play14:40

problem set so for this there is an

play14:41

entire section on introductory problems

play14:43

go and solve that entire section there's

play14:45

an entire section of searching and

play14:46

sorting go and solve this entire section

play14:48

of searching and sorting when you come

play14:50

to the specialist rating range this is

play14:52

the point where you can look at specific

play14:54

topics like dynamic programming graphs

play14:56

trees range queries right and one more

play14:58

thing that I want to recommend in this

play15:00

entire journey of you becoming an expert

play15:02

is that if you are xrated on code forces

play15:04

if your rating is let's suppose 12200

play15:07

Target problems from x - 200 to x + 200

play15:10

based on code forces difficulty so if

play15:12

you have 1200 on code forces solve

play15:14

problems from 1,000 rating all the way

play15:17

up to, 1400 on COD forces now if you're

play15:19

looking for a resource to you know solve

play15:21

rating wise problems then you can refer

play15:23

to my cp31 sheet this is a resource that

play15:25

I've constructed by spending 80 plus

play15:27

hours reading 50 00 plus problem

play15:29

statements and handpicking only those

play15:32

problems which are the most interesting

play15:33

and the most important for Ratings from

play15:36

800 all the way up to 1600 on code

play15:38

forces so that was it for this video

play15:39

guys I hope you found it insightful and

play15:41

you now have a structured way to go from

play15:44

either newb pupil or specialist to an

play15:46

expert rating on COD forces in case you

play15:49

want to get more depth on you know uh

play15:51

what are the subtopics that you should

play15:53

be learning for every single topic here

play15:54

I have made a dedicated video for that

play15:56

and you can check that out as well

Rate This

5.0 / 5 (0 votes)

相关标签
CodeforcesCompetitive ProgrammingAlgorithmsCoding SkillsRating ImprovementBinary SearchDynamic ProgrammingBit ManipulationGreedy AlgorithmsMath ConceptsRecursion
您是否需要英文摘要?