`Last Update 3 June 2020`

`Hello codeforces community`

```
I have working on graph theory course which is beginner friendly.The course emphasizes on learning by doing methodology.
After teaching an algorithm and showing how it is implemented I take example practice problems from judges like Codeforces , Codechef , Spoj etc and teach how this algorithm is used in different scenario and how it can be used to solve the problem.
```

```
Here is the list of lecture from the course (I will be uploading more lectures)
```

## Graph Theory Course : Part 1

- L00 : Course Overview
- L01 : Graph Representation
- L02 : Depth First Search(DFS)
- L03 : Counting Connected Components
- E01 : Practice Problem 1
- L04 : SSSP on trees using DFS
- E02 : Practice Problem 2
- E03 : Practice Problem 3
- L05 : Bipartite Graph Test
- E04 : Practice Problem 4
- L06 : Cycle Detection using DFS
- L07 : In/Out Time in Tree
- E05 : Practice Problem 5
- L08 : Finding Diameter of Tree
- E06 : Practice Problem 6
- L09 : Calculating SubTree Size of each node
- L10 : Breadth First Search(BFS)
- E07 : Practice Problem 7
- E08 : Practice Problem 8
- E09 : Practice Problem 9
- E10 : Practice Problem 10
- L11 : Finding Bridges Part 1
- L12 : Finding Bridges Part 2
- E11 : Bertown Roads (CF Rated 2100)
- L13 : Articulation Points and relation withBridges
- L14 : Finding Articulation Points
- E12 : SUBMERGE(SPOJ) (added : 20 April 2020)
- L15 : Topological Sorting Introduction (added : 10 May 2020)
- L16 : TOPOSORT (Spoj) | Practice Problem (added : 12 May 2020)
- L17 : Introduction of Graph Algorithms on 2D Grid (added : 23 May 2020)
- L18 : Applying dfs on 2D Grid (added : 24 May 2020)
- L19 : Counting Connected Components in Grid (added : 28 may 2020)
- E13 : Counting Rooms(CSES) | Practice Problem (added : 28 may 2020)
- L20 : BFS on 2D Grid (added : 30 May 2020)
- E14 : Jungle Run (HackerEarth | Practice Problem (added : 3 June 2020)

```
Any suggestion or criticism is welcome.
Thank you for your valuable time.
PS : Ignore any grammatical mistake as we ignore compiler warnings (My English is not very good)
```

Didn't know about your channel. I just checked and found that you have made good lecture series on a lot of topics. Your channel is great for beginners.

Can you please cover more hard problems (1800-2200 rating) in Dp course part-2 on your channel?

I will add some more problems soon.

How to solve G ?

I think you are referring to some codeforces G problem

don't bother, its an alt of Karan Gujar XD

kazama460 i just want to say that you are doing a great job mahn!Its not easy to explain someone.It needs skill that you have.

Thanks for this buddy!:)

thanks bro for the course ,your videos are really good i will sure try to follow it.

Can someone make videos on MO's algo ?

I have already made video on Mo's. here is the full playlist : https://www.youtube.com/playlist?list=PL2q4fbVm1Ik7Ds5cuaoOmExjOQG31kM-p

start from square root decomposition (if you don't already know that)

if you can't solve C — Linova and Kingdom, after watching these videos what outcome should we expect? :)

Its simple , if you think that learning graph theory would enable you to solve all problems related to graph you are mistaken. just think about it , if it was true then learning graph theory will bring everyone on the same level despite the fact that one person is better on out of the box thinking and other is not. I could not solve C problem because I must be missing something and that's where up solving comes into the picture (the thing I didn't knew but need to learn).

just look at this contest : https://codeforces.com/contest/1287 I couldn't solve B problem but could solve C and D , and D problem is also from graph theory. what does that tell about me? Since I could not solve problem B so am I a bad programmer ? may be yes.

But unfortunately that's not true. As a competitive programmer you can never be perfect , Learning certain algorithm would not assure you will be able to solve problems related to that , but it would give you a better chance to solve it.

I hope you understand what I meant to say.

I got something new after reading this comment. Thanks.

I was going to reply the exact same thing after I had my lunch XD.

Reply with your version, interested.

Well, when I had started doing CP I was always looking for that ALL-IN-ONE Resource which had all the theory required to become red. Obviously ,I wanted one easy way out.

I thought there was some book or website which had everything and I was planning to put all my effort into completing that book and I thought it will make me a really good coder.

After trying out CLRS, CP Handbook by Antti Laaksonen and CP3 , I realized even these legendary books don't have everything. Then I looked at geeksforgeeks and cp-algorithms.com and started reading those.

And finally realized,

no matter how much theory you manage to complete you cannot guarantee that you will be able to solve all question related to that theory without errors.If you are going to do CP seriously, you are going to be in the "learning" phase for a long long time.

And there's only one way to make yourself better, PRACTICE!

There's absolutely no substitute for hard work and practice.

And also regarding why you should watch those videos if only practice is going to make you better.

It's because the questions are made around these topics.

I mean , you won't be seeing questions like "Given a tree rooted at node 1, print the subtree size of each node."

But you will be seeing questions which have something to do with the subtree size and if you don't know the standard algo how to calculate the subtree size of each node then it will take you more time to think about it.

So , you may watch the videos. It will be beneficial in the future for sure.

Thanks!

and one advice , though I make videos I still advice programmers (which if ask for advice) to read. Build a habit of reading because you will find really beautiful articles on the web than videos. for example take a look on this article : https://codeforces.com/blog/entry/43230 so build a habit of reading you will find a lot resources to read. Good luck

Thanks, Btw I didn't hear about you from this post for the first time, I had been watching u before. I did make that comment 'cause I was really interested, it was not like sarcasm or irony. Good luck you too!

I am ok with sarcasm too buddy believe me. and your comment didn't offend me at all. I just thought you are missing important information(that was y assumption I may be wrong) so I needed to tell you.

your advice is owsm. but how can i find articles in CF. like how can i get all articles on graph or on tree or on DP like that. please share some information about articles. and do you know some other website which have good articles.

thanks bro. this is really great advice.

Sorry to interrupt you again, but can you suggest some good resources for math in coding, i am weaker in counting and combinatorics also some times i can't even understand how the specific problem can be solved using just gcd or lcm. thx in advance..

Akash79

again thank you so much for your advice.

Dawg the main idea in C isnt reliant on graph theoretic knowledge anyway

You can add some problems to practice for each videos.

When part 2 will be completed?

hard to say , past 2 weeks I have been busy with Query on tree series. Hope I will add some more lectures in Part 2 series soon

Nice

Many thanks <3

I'm looking for a nice network flow, maximum bipartite matching, and minimum cover on DAG tutorials on Youtube. Does anyone know?

like similarly, when I was looking for Miller-Rabin algo code in c++, and it was really hard to find, but this link helps with exercise problem.

Coursera. Go to syllabus and in week 1, the lectures are on Flows and maximum bipartite matching.

Thanks bro...

A great course by a great tutor. I have seen all the videos and it helped me a lot. Thanks buddy!