Competitive Programming Essentials, Master Algorithms 2022

Competitive Programming Essentials, Master Algorithms 2022

English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 343 lectures (56h 51m) | 32.7 GB

Master competitive coding techniques – maths, number theory, dynamic programming, advanced data structures & algorithms

Equip yourself with essential programming techniques required for ACM-ICPC, Google CodeJam, Kickstart, Facebook HackerCup & more. Welcome to Competitive Programming Essentials – the ultimate specialisation on Algorithms for Competitive Coders!

The online Competitive Programming Essentials by Coding Minutes is a highly exhaustive & rigorous course on Competitive Programming. The 50+ hours course covers the breadth & depth of algorithmic programming starting from a recap of common data structures, and diving deep into essential and advanced algorithms.

The course structure is well-researched by instructors who not only Competitive Coders but have worked with companies like Google & Scaler. This course will help you to get a solid grip of fundamental concepts & comes with practice questions so that you sail through online coding challenges and code-athons with ease. The course is divided into 10 modules and 50 sections covering topics like Mathematics, Number Theory, Bitmasking, Inclusion-Exclusion, Meet in the Middle Techniques, Segment Trees, Fenwick Trees, Square Root Decomposition, Graph Algorithms, Shortest Paths, Game Theory, Pattern Matching, Binary Search, Greedy Techniques, Dynamic Programming and even more.

The problem setters of the course are Siddharth Singhal and Rajdeep Singh. Both are upcoming software developers at Microsoft and Razorpay respectively. They both exhibit excellent knowledge of Data Structures and Algorithms and are avid competitive programmers.

Many top companies like Google, Facebook, Amazon, Directi, CodeNation, Goldman Sachs etc encourage Competitive Programming and conduct coding competitions to hire smart people who can solve problems.

What you’ll learn

  • Understand & implement important techniques in Competitive Programming
  • Learn advanced techniques to optimise naive solutions
  • Ace code-thons and online coding competitons on Codeforces, HackerRank
  • Get ready for ACM-ICPC, Google Kickstart, CodeJam & more
Table of Contents

Introduction
1 Introduction
2 Course Structure
4 Doubt Support
5 IDE Environment Setup
6 FAQ’s

Setting Up Sublime [Optional]
7 Sublime Setup
8 Adding Master Header File
9 Escaping Online Judges
10 Common Code Snippets
11 Using Macros
12 Example Code Explained

Time Space Complexity Analysis
13 Space Time Complexity Introduction
14 Experimental Analysis
15 Big O Notation
16 Nested Loops
17 Nested Loops – II
18 Analysis of Bubble Sort
19 Analayis of BInary Search
20 Analysis of Merge Sort
21 Avoiding TLE Errors
22 Complexities for Worst Case AC

Data Structures & STL Containers
23 Data Structures & STL Containers Revisited
24 Arrays in C++
25 Array STL
26 Vector STL
27 Deque STL
28 Stack STL
29 Queue STL
30 Priority Queue STL
31 [Webinar] Hashing STL
32 [Webinar] More on STL

Bitmanipulation Basics
33 Bitwise Operators
34 Left Shift & Right Shift
35 Odd Even
36 Get ith Bit
37 Clear ith Bit
38 Set ith Bit
39 Update ith Bit
40 Clear Last i Bits
41 Clear Range of Bits
42 Replace Bits
43 Two Power
44 Count Bits
45 Count Bits Hack
46 Make it Binary

Bitmanipulation Problems
47 Unique Number – I
48 Unique Number – I Code
49 Unique Number – II
50 Unique Number – II Code
51 Unique Number – III
52 Unique Number – III Code
53 Finding Subsets
54 Finding Subsets Code
55 Travelling Salesman Problem
56 Travelling Salesman Intution
57 Travelling Salesman Code
58 Travelling Salesman – DP Optimisation

Big Integers
59 Welcome!
60 Introduction to Big Integers
61 Big Addition Concept
62 Big Addition Code
63 Array & Integer Multiplication
64 Large Factorials
65 Java Big Integer Class
66 BigInteger Example
67 Big Integers in Python
68 Python’s Handling of Big Integers
69 Big Integer Challenge – Julka
70 Big Integer Challenge Solution

Linear Recurrences & Matrix Exponentiation
71 Binary Exponentiation
72 Modular Binary Exponentiation
73 Fast Mutiplication
74 Matrix Exponentiation Introduction
75 Matrix Exponentiation Code
76 Fibosum (spoj)
77 Fibosum(second approach)

Pigeonhole Principle
78 Pigeonhole Principle
79 Problem DIVSUB
80 Applying Pigeonhole Principle
81 Gray Similar Code
82 Holiday
83 Holiday Code

Mathematical Expectation
84 Expectation
85 Linearity of Expectation
86 Problem – Linearity of Expectation
87 Expected Throws – One Head
88 Expected Throws – Two Consecutive Heads
89 Expected Throws – N Consecutive Heads
90 Bernaulli’s Trial
91 Choose Number
92 Bernoulli’s Trial
93 Coupon Collector

Inclusion Exclusion Principle
94 Inclusion Exclusion
95 Generalised Function
96 Problems
97 Total Number of Divisors Till N code

Prime Numbers & Factorisation
98 Introduction
99 Prime Sieve
100 Sieve of Eratosthenes Code
101 Prime Queries
102 Prime Factorisation
103 Prime Factorisation Code O(N)
104 Prime Factorisation Code O(Sqrt(N))
105 Prime Factorisation using Sieve O(LogN)
106 Segmented Sieve
107 Segmented Sieve Algorithm
108 Segmented Sieve Code

Extended Euclidean’s Algorithm & Applications
109 GCD
110 Euclid’s Algorithm Code
111 GCD Complexity
112 Extended Euclideans
113 Extended Euclidean Example
114 Extended Euclidean Code
115 GCD using Extended Euclidean Algorithm
116 Multiplicative Modulo Inverse
117 Computing Multiplicative Modulo Inverse
118 MMI Code
119 Linear Diophantine Equations
120 Linear Diophantine Equation – Family of Solutions

Theorems in Number Theory
121 Modulo Airthmetic
122 Modulo Arithmetic Code
123 Fermat’s Theorem
124 Factorial % P
125 nCr % P
126 Chinese Remainder Theorem
127 Totient Function
128 Totient Function code using Seive

Combinatorics
129 Combinatorics Introduction
130 Binomial Coefficients
131 P & C Formulas
132 Computing Binomial Coefficients
133 Birthday Paradox
134 Birthday Paradox Code
135 Catalan Numbers
136 Catalan Numbers Code – Recursive
137 Catalan Numbers Code – Iterative DP
138 OEIS
139 Introduction to Algorithms

Recursion
140 Recursion Basics
141 Factorial
142 Fibonacci Series
143 Sorted Array Check
144 Understanding Recursion DIrections
145 Power Function
146 Fast Power
147 Tiling Problem
148 Count Strings
149 Friend’s Pairing Problem
150 Tower Of Hanoi
151 Tower Of Hanoi (code)

Backtracking
152 Backtracking Problems
153 Finding Subsets
154 Finding Subsets Code
155 Permuations
156 Brackets
157 Brackets Code
158 N-Queen
159 N-Queen Code
160 N-Queen Ways
161 Sudoku Solver
162 Sudoku Solver Code

Binary Search
163 Binary Search
164 Binary Search Code
165 Lower Bound and Upper Bound
166 Lower Bound Code
167 Angry Birds
168 Angry Bird Code
169 Game of Greed
170 Game of Greed Code

Divide & Conquer
171 Merge Sort
172 Merge Sort Code
173 Quick Sort
174 Quick Sort Code
175 Quick Select
176 Quick Select Code
177 Inversion Count
178 Inversion Count Code
179 Ternary Search
180 Ternary Search – Finding maximaminima of a parabola (Code)

Greedy Algorithms
181 Greedy Introduction
182 Indian Coin Change
183 Greedy vs DP
184 Activity Selection Busyman
185 Baised Standings
186 Kingdom Defense

Meet In The Middle
187 Introduction
188 Subsums Code

Segment Trees
189 Introduction to Range Queries
190 Introduction and Structure
191 Building
192 Query
193 Update
194 Facts and Properties
195 Code

Lazy Propagation
196 Introduction
197 Algorithm
198 Code
199 Bug and Code Continued

Fenwick Trees
200 Structure
201 Query
202 Update
203 Code
204 Inversion Count (Multiple Ways of solving it)
205 Inversion Count Using Fenwick Tree
206 Inversion Count Using Fenwick Tree Code

Sqrt Decomposition
207 Sqrt Decomposition Introduction
208 Range queries (Code)
209 DQUERY SPOJ using Mo’s Algorithm
210 Sorting the queries according to MO’s comparator
211 Pointers Technique
212 Code and Complexity of MO’s Algorithm
213 DQUERY using Fenwick Tree

Combinatorial Games
214 Game Theory Introduction
215 Combinatorial Games
216 Take Away Games
217 N and P positions

The Game Of NIM
218 Game of Nim
219 Nim Sum
220 Applications of Nim Sum
221 Examples of Nim Games

Graph Traversals
222 Graphs Introduction
223 Introduction
224 Graph Key Concepts
225 Adjacency List
226 Adjacency List
227 BFS Concept
228 BFS
229 DFS
230 DFS Code
231 Shortest Path
232 Shortest Path Code
233 Board Game
234 Board Game Code

Graphs as Trees
235 Trees
236 DFS on Trees
237 DFS Trees and Backedges
238 DFS Tree and Backedges Code

Lowest Common Ancestors
239 LCA introduction
240 LCA Brute Force
241 LCA using Binary Lifting

Directed Graphs & SCC’s
242 Intro
243 Topological Sort
244 SCC Theory
245 Condensed Component Graph
246 Kosaraju Algorithm Code
247 Kosaraju Algorithm for Strongly Connected Component

Disjoint Set Union Data Structure
248 DSU Introduction
249 DSU Data Structure
250 Union & Find Ops
251 DSU Implementation
252 Union By Rank
253 Path Compression

Spanning Trees
254 Dry Run
255 Prim’s Algorithm
256 Prim’s Code
257 Kruskal’s Algorithm
258 Kruskal’s Code

Shortest Paths Algorithms
259 Shortest Path Introduction
260 Dijkstra’s Algorithm
261 Dijkstra’s Algorithm Code
262 Bellman Ford Algorithm
263 Bellman Ford Code
264 Floyd Warshall Algorithm
265 Floyd Warshall Code

Classical Dynamic Programming
266 Introduction to Dynamic Programming
267 A Note About DP
268 N-K Ladders
269 N-K Ladders Top Down
270 N-K Ladders Bottom Up
271 Minimum Jums
272 Minimum Jumps Code
273 Longest Increasing Subsequence
274 Longest Increasing Subsequence Code
275 Box Stacking Problem
276 Box Stacking Code

Advance Dynamic Programming Problems
277 Terms and Definitions
278 Tabulation vs Memoisation
279 Frogs – 1
280 Frogs – 2
281 Vacation
282 Knapsack 1
283 Knapsack 2
284 LCS
285 LCS (code)
286 Longest Path
287 Longest Path (code)
288 Grid 1
289 Grid 1 (code)
290 Coins
291 Coins (code)
292 Sushi
293 Sushi (code)
294 Stones
295 Deque (first solution)
296 Deque (second solution)
297 Candies
298 Candies (code)
299 Slimes
300 Slimes (code)
301 Matching
302 Matching continued
303 Matching (code)
304 Independent Set
305 Independent Set (code)
306 Flowers
307 Flowers using segment tree
308 Flowers (code)
309 Walk
310 Walk (code)
311 Digit Sum
312 Digit Sum (code)
313 Permutation
314 Permutation (Brute Force)
315 Permutation (code)

Pattern String Matching
316 Introduction to Advanced Module!
317 Brute Force Pattern Matching using STL
318 Trie
319 Pattern Matching using Trie
320 String Hashing – Polynomial Hash Function
321 Polynomial Hash Code
322 Rolling Hash Rabin Karp Algorithm
323 Rabin Karp algorithm Code

Geometric Algorithms – Convex Hull
324 Introduction
325 Orientation of Points
326 Graham’s Scan algorithm
327 Graham’s Scan Algorithm Code
328 Problem – Polygon (Codeforces)

Interactive Problems
329 Introduction
330 Codeforces – Guess the Number
331 Guess the Number – code
332 Lost Numbers
333 Lost Numbers (code)
334 Xor Guessing
335 Xor Guessing (code)

Random Randomisation
336 Randomised Random Function
337 Run Code for a Particular Time

Policy Based Data Structures
338 Introduction & Applications
339 Structure and Working
340 Using Coding Minutes IDE
341 Inversion Count using PBDS

CP Guidance
342 Getting started with Codeforces Spoj
343 Where to practice

Homepage