All the good tutorials found for Competitive Programming

Revision en26, by vaibhav1997, 2020-12-20 02:18:28

Here is the list of some of the good tutorials written by codeforces users :-
C++
- C++ Tricks by HosseinYousefi
- C++ STL: map and set by adamant
- C++ STL: Policy based data structures by adamant
- Competitive C++ Manifesto: A Style Guide by HosseinYousefi
- Catching silly mistakes with GCC by andreyv
- About a general reader / writer for STL-Structures, by Arturgo
- Blowing up unordered_map, and how to stop getting hacked on it by neal
- C++ tips and tricks by Golovanov399
- 4-5x Faster Drop-in Replacement for std::lower_bound by sslotin
- How to get actual 64 bit bitsets on Codeforces [Not Recommended] [Don't do this at your job] by Chilli

Data Structures
- Algorithm Gym :: Data Structures by PrinceOfPersia
- Everything about Segment Trees by PrinceOfPersia
- Efficient and easy Segtree by Al.Cash
- A simple introduction to "Segment tree beats" by jiry_2
- Sack(DSU on trees) by Arpa
- dsu on trees by qmk
- SQRT Tree by gepardo
- Link-Cut tree by adamant
- Easy implementation of Compressed 2D Binary Indexed Tree for grid of binary numbers by sdnr1
- Introduction to New Data Structure: Wavelet Trees by rachitiitr
- [Tutorial] Searching Binary Indexed Tree in O(log(N)) using Binary Lifting by sdnr1
- An alternative sorting order for Mo's algorithm by gepardo
- How can we perform segment queries with Palindromic Tree? by duckladydinh
- Easy and (Semi)Efficient Dynamic Segment Trees (with Policy Hash Tables) by Chilli
- 2D Range Minimum Query in O(1) by fnf47
- Nifty implementation of multi-dimensional Binary Indexed Trees using templates. by mouse_wireless
- Top 10 optimizations 2017- (collectors edition) by bukefala
- [Tutorial] Sparse table by ADJA
- Tutorial on Trie and example problems by darkshadows
- On Multidimensional Range Queries by Laakeri
- Path max queries on a tree in O(1) by neal
- Enumerating all Binary Trees to build O(n)/O(1) RMQ by SecondThread
- Mo's Algorithm (with update and without update, now you can understand both) by Fype
- Mo's Algorithm on Trees [Tutorial] by animeshf
- Understanding Fenwick Trees / Binary Indexed Trees by Malomalomalomalo
- Maintain subtree information using link/cut trees by ouuan
- [Tutorial] Two ways to apply Mo's Algorithm on Trees by oToToT
- Link Cut Tree implementation by bicsi
- Generalizing Segment Trees with Rust by EbTech
- Tutorial on Permutation Tree (析合树) by errorgorn
- Compressed segment trees and merging sets in O(N logU) by bicsi
- [Tutorial] Square root decomposition and applications by box
- [Tutorial] A powerful representation of integer sets by brunomont

DP
- DP on Trees by darkshadows
- SOS DP by usaxena95
- Recurrent Sequences — Application of combinatorics in DP by TooNewbie
- Non-trivial DP tricks & Techniques by zscoder
- Digit DP by flash_7
- Optimized solution for Knapsack problem by sdnr1
- Dp On Trees by AghaTizi
- DP Tutorial and Problem List by Ahnaf.Shahriar.Asif

Math
- Invariants and monovariants by TooNewbie
- Mobius Inversion by Nisiyama_Suzune
- Mobius Inversion and Multiplicative functions : Tutorial by revivedDevil
- Dirichlet convolution by Nisiyama_Suzune
- Fast convolution for 64-bit integers by quasisphere
- Tutorial for FFT/NTT Part 1 by sidhant
- Tutorial for FFT/NTT Part 2 by sidhant
- On Fast Fourier Transform by adamant
- Extended Eratosthenes Sieve by lucyanna2018
- Burnside Lemma by flash_7
- 2 Special cases of Gaussian by MazzForces
- Number of Solutions to a Linear Algebraic Equation by J-C
- Rolling hash and 8 interesting problems by dmkz
- Avoid overflow in linear diophantine equation by Jakube
- [Tutorial] Chinese Remainder Theorem by Valiors
- Linear Recurrence and Berlekamp-Massey Algorithm by TLE
- A blog on the Sprague-Grundy Theorem by sirknightingfail
- Schonhage-Strassen (FFT-based integer multiplication) tutorial by sammyMaX
- [Tutorial] Inclusion-Exclusion Principle, Part 1. by Roundgod
- Number Theory in Competitive Programming [Tutorial] by rkm0959
- On burnside (again) by rotavirus
- A Bitwise Convolution Tutorial by Anai
- The Fear of Gaussian Elimination by godmar
- Derangement Generation of an Array [Tutorial] by lazyneuron
- [Tutorial] Matroid intersection in simple words by ATSTNG
- Solving Linear Recurrence for Programming Contest by fushar
- A Beautiful Technique for Some XOR Related Problems by DrSwad
- The Intuition Behind NIM and Grundy Numbers in Combinatorial Game Theory by Shisuko
- Fast Walsh Hadamard Transforms and it's inner workings by upobir
- Modular Arithmetic for Beginners by Spheniscine
- Number of Solutions to a Linear Algebraic Equation by J-C
- A problem collection of ODE and differential technique by jqdai0815
- Slope trick explained by Kuroni
- [Tutorial] Generating Functions in Competitive Programming (Part 1) by zscoder
- [Tutorial] Generating Functions in Competitive Programming (Part 2) by zscoder
- Addendum: Optimized variant of Barrett reduction + proof re: ultimate NTT article by Spheniscine

String Processing
- Z algorithm by paladin8
- Suffix Automata by quasisphere
- Transition between Z- and prefix functions by adamant
- Manacher's algorithm and code readability by adamant

Geometry
- Quaternion algebra and geometry by adamant
- Slope Trick by zscoder
- Nearest Neighbor Search by P_Nyagolov
- Convex Hull trick and Li chao tree by adamant
- Geometry: 2D points and lines by Al.Cash
- Geometry: Polygon algorithms by Al.Cash
- [Tutorial] Convex Hull Trick — Geometry being useful by meooow

Graphs
- 0-1 BFS by himanshujaju
- 2-SAT by HosseinYousefi
- Algorithm Gym :: Graph Algorithms by PrinceOfPersia
- On Euler tour trees by ifsmirnov
- 'Meet in the middle' with shortest path problems of unweighted graph by tantam75
- Vertex cover and 2-SAT by irkstepanov
- Add edges to a digraph to make it strongly connected by chaotic_iak
- [Tutorial] The DFS tree and its applications: how I found out I really didn't understand bridges by -is-this-fft-
- The “Bridge Tree” of a graph by Baba
- Articulation points and bridges (Tarjan's Algorithm) by searleser97
- [Tutorial] Maximum Independent Set in Bipartite Graphs by C137
- Centroid Decomposition on a tree(Beginner) by YoyOyoYOy000y000
- [Insight] Number of Topological Orderings of a Directed Tree by Osama_Alkhodairy
- Online Query Based Rerooting Technique by DeadlyCritic
- [Tutorial] Boruvka's Algorithm by RockyB

Others
- Parallel Binary Search by himanshujaju
- General ideas and tricks by adamant
- Some Tutorials -- Or attempts at it :P by RestingRajarshi
- Tutorial On Tof (Ternary Search) by Mahdi_Jfri
- YouTube Channels for Competitive Programmers by Silver_
- Gym Contest with Editorial by Learner99
- Writing a book on geometry — Update by vlecomte
- Problem Topics by -Morass-
- [Tutorial] Interview preparation guide for Google, Facebook, and other tech companies. by ADJA
- Tricks that I learnt while practicing by nubir345

If you know some good tutorial on codeforces which is not in this list and another list provided below please mention it in the comments I will add that in the list.

Another Similar List
Good Blog Post Resources about Algorithm and Data Structures

Tags #tutorials

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en27 English vaibhav1997 2021-11-10 14:24:09 22 Fixed parsing bug
en26 English vaibhav1997 2020-12-20 02:18:28 0 (published)
en25 English vaibhav1997 2020-12-20 02:17:10 2063 Tiny change: 'er:nubir34] ' -> 'er:nubir345] '
en24 English vaibhav1997 2020-12-20 01:56:13 649
en23 English vaibhav1997 2020-12-20 01:49:41 525 Tiny change: '20-12-20] \n- [Cent' -> '20-12-20] \n- [Cent'
en22 English vaibhav1997 2020-12-20 01:43:27 268 Tiny change: '18-12-21] \n- [DP T' -> '18-12-21] \n- [DP T'
en21 English vaibhav1997 2020-12-20 01:38:17 1441
en20 English vaibhav1997 2020-12-20 01:24:32 110 (saved to drafts)
en19 English vaibhav1997 2019-10-13 18:06:32 859 Tiny change: '19-09-19] \n- [Gym ' -> '19-09-19] \n- [Gym '
en18 English vaibhav1997 2019-09-19 06:09:35 938
en17 English vaibhav1997 2019-03-18 11:11:38 261 Tiny change: '018-03-05]\n- [Compe' -> '018-03-05] \n- [Compe'
en16 English vaibhav1997 2019-03-04 17:33:38 1000
en15 English vaibhav1997 2018-12-21 16:35:36 1826
en14 English vaibhav1997 2018-07-21 10:00:16 1218
en13 English vaibhav1997 2018-03-26 16:21:29 139
en12 English vaibhav1997 2018-03-05 07:59:52 139
en11 English vaibhav1997 2018-02-05 19:15:02 131
en10 English vaibhav1997 2018-02-02 16:09:55 120 Tiny change: '018-01-22]\n- [Digit' -> '018-01-22] \n- [Digit'
en9 English vaibhav1997 2018-01-27 17:38:12 2631 Tiny change: '18-01-22] \n- [A si' -> '18-01-22] \n- [A si'
en8 English vaibhav1997 2018-01-24 20:43:56 312
en7 English vaibhav1997 2018-01-24 15:00:16 1148
en6 English vaibhav1997 2018-01-23 08:40:57 285 Tiny change: '18-01-22] \n- [SQRT' -> '18-01-22] \n- [SQRT'
en5 English vaibhav1997 2018-01-22 20:13:59 285 Tiny change: 'the list. ' -> 'the list. \n '
en4 English vaibhav1997 2018-01-22 19:44:19 512 Tiny change: ' \n- [2 - SAT](http:' -> ' \n- [2-SAT](http:'
en3 English vaibhav1997 2018-01-22 18:14:47 571
en2 English vaibhav1997 2018-01-22 17:56:37 240
en1 English vaibhav1997 2018-01-22 17:49:51 1049 Initial revision (published)