Graph Theory Algorithms for Competitive Programming (2021)

Graph Theory Algorithms for Competitive Programming (2021)

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 20h 12m | 11.1 GB

Learn Graphs Algorithms in Computer Science & Mathematics, theory + hands-on coding and ace Competitive Coding problems!

Welcome to Graph Algorithms for Competitive Coding – the most detailed Specialisation in Graph Theory for Competitive Programmers, Software Engineers & Computer Science students!

Graphs is quite an important topic for software engineers, both for academics & online competitions and for solving real life challenges. Graph algorithms form the very fundamentals of many popular applications like – Google Maps, social media apps like Facebook, Instagram, Quora, LinkedIn, Computer Vision applications such as image segmentation, resolving dependencies while compile time, vehicle routing problems in supply chain and many more. This course provides a detailed overview of Graph Theory algorithms in computer science, along with hands on implementation of all the algorithms in C++. Not just that you will get 80+ competitive coding questions, to practice & test your skills!

This comprehensive course is taught by Prateek Narang & Apaar Kamal, who are Software Engineers at Google and have taught over thousands of students in competitive programming over last 5+ years. This course is worth thousands of dollars, but Coding Minutes is providing you this course to you at a fraction of its original cost! This is action oriented course, we not just delve into theory but focus on the practical aspects by building implementing algorithms & solving problems. With over 95+ high quality video lectures, easy to understand explanations this is one of the most detailed and robust course for Graph Algorithms ever created.

Course starts very basics with how to store and represent graphs on a computer, and then dives into popular algorithms & techniques for problem solving. The course is divided into two parts.

Part-I Graph Theory Essentials

  • Graph Representations
  • Popular Traversals – BFS & DFS
  • Cycle Detection – Weighted & Unweighted Graphs
  • Topological Ordering & Directed Acyclic Graphs
  • Disjoint Set Union, Path Compression & Union by Rank
  • Minimum Spanning Trees – Prim’s & Kruskal’s
  • Shortest Paths – BFS, Dijkstra’s, Bellman Ford, Floyd Warshall
  • Travelling Salesman Problem, Min Cost Hamiltonian Cycle

Part-II Graph Theory Advanced

  • Flood Fill
  • Multisource BFS
  • DFS & Backedges
  • SCC’s & Kosaraju’s Algorithm
  • Euler Tour
  • LCA
  • Trees
  • Articulation Points & Bridges
  • Network Flow

The part-II is recommended for programmers who want to deep dive into Competitive Programming & take part in contests. For most students part-I is good enough to understand the most fundamental concepts and techniques in graphs!

What you’ll learn

  • Graph Basics, Applications
  • BFS, DFS, Connected Components
  • Shortest Paths – Dijkstra, Bellman, Floyd Warshall
  • Travelling Salesman Problem – DP with Bitmasks
  • Topological Ordering, Strongly Connected Components
  • Disjoint Set Union, Minimum Spanning Trees, Prim’s & Kruskal
  • Advanced Graphs, Euler Tour, Trees
  • Network Flow, LCA, Articulation Points
  • Graphs for Competitive Programming
  • 80 + Competitive Coding Questions
Table of Contents

1 Course Orientation!
2 Q A Section & Discord Community

Graph Representation
4 Graphs Introduction
5 Graph Applications
6 Graph Key Terms
7 Adjacency List Representation
8 Adjacency List Representation with Node Class
9 Some Helpful Webinars [Optional]

Breath First Search
10 Breadth First Search
11 BFS Code
12 BFS Shortest Path
13 BFS Shortest Path Code
14 Snakes and Ladder Solution

Depth First Search
15 DFS Concept
16 DFS Code
17 Largest Island Solution

Cycle Detection
18 Cycle Detection in Undirected Graph
19 Cycle Detection in Undirected Graph Code
20 Directed Graph – Cycle Detection
21 Directed Graph – Cycle Detection Code
22 Bipartite Graph
23 Bipartite Graph Code

Directed Acyclic Graph
24 Directed Acyclic Graph & Topological Ordering
25 Topological Sort Algorithm
26 Topological Ordering BFS Code
27 Toplogical Order using DFS
28 Topological Ordering using DFS Code

Disjoint Set Union
29 Disjoint Set Union Introduction
30 DSU Data Structure
31 DSU Implementation
32 Union by Rank
33 Path Compression Optimisation
34 DSU Dry Run

Minimum Spanning Trees
35 DSU Data Structure – Union & Find Ops
36 Introduction to Minimum Spanning Trees!
37 Prim’s Algorithm
38 Prim’s Code
39 Kruskal’s Algorithm
40 Kruskal’s Code

Shortest Path Algorithms
41 Introduction to Shortest Path Algorithms
42 Dijkshtra’s Algorithm
43 Dijkshtra’s Algorithm Code
44 Bellman Ford Algorithm
45 Bellman Ford Code
46 Floyd Warshall
47 Floyd Warshall Code
48 Solution – Shortest Path in Grid!

Travelling Salesman Problem
49 Travelling Salesman Problem
50 Travelling Salesman Intution
51 TSP Brute Force
52 TSP DP + Bitmasking

Flood Fill
53 Flood Fill Introduction
54 Number of Islands
55 Coloring Islands
56 Biggest Island
57 Make Largest island

Multi – Source BFS
58 Introduction to Multi Source BFS
59 Problem on Multi Source BFS
60 Bonus Problem on Multi Source BFS
61 BFS

DFS-Tree and Backedges
62 Introduction to DFS tree and Backedges
63 DFS Tree and backedges in Undirected graph
64 DFS Tree and Backedges in Directed and Undirectde graphs
65 Print cycle in a graph

Articulation Points & Bridges
66 Introduction and definitions
67 Discovered Time
68 Lowest Time or Low Link
69 Algorithm
70 Coding the Algorithm

Strongly Connected Components
71 Introduction to Topological Order and Strongly Connected Components
72 Algorithm and Code to find Topological Ordering
73 Introduction to Strongly Connected Component
74 Condensed Component Graph
75 Kosaraju Algorithm for Strongly Connected Component
76 Kosaraju Algorithm for Strongly Connected Component Code

77 Introduction and properties of trees
78 DFS on trees
79 Print all ancestors in a tree

Euler Tour
80 Introduction
81 Applications
82 Code

83 Introduction
84 LCA (Brute Force)
85 LCA using Binary Lifting

Re-rooting of trees
86 Introduction and brute force
87 Approach to re root the tree
88 Code for re rooting of the tree

Network Flow
89 Introduction to Network
90 Introduction to Maximum Flow in a Network
91 Residual Networks and Augmenting Paths
92 Ford-Fulkerson and Edmond-Karp Algorithm
93 Dinic’s Algorithm
94 Dinic’s Algorithm Code
95 Applications of Max Flow as Maximum Bipartite Matching

Bonus Graph + Data Structures
96 Board Game
97 Board Game Code