Hi I was teacher of some online courses for students preparing themselves for IOI. I recorded my course sessions in some video files and they can be useful for Iranian (or who knows Persian) high school and also university students.
If anybody wants the videos contact me here or my Gmail with address taheripost@gmail.com or telegram id @kerpoo .
The first course was about introduction to programming with C++ and the content of the course was:
Introduction to the general programming tools with c++ syntax (Variables, Arrays, Conditions, Loops, Functions & ...)
Recursive functions
Time and memory complexity
Sort algorithms and implementation of Merge-sort
Algorithms about Prime numbers and Eratosthenes sieve
Introduction to big numbers and their algorithms
Introduction to binary search trees (BST)
Working with files by fstream library
Introduction to important libraries and structures for competitive programming (Pair, Vector, Sort function and custom, Next_permutation function, String, Set, Map, Struct & ...)
Solving and implementing some projecteuler.net problems.
After this course you will be able to accept about 25 problems of projecteuler.net and a lot of programming exercises.
The second course was about introduction to algorithms and data structures and the content of the course was:
Dynamic programming:
- Simple dp and memorization
- Interval dp
- Bitmasks and subset dp
- Dp on trees
** Greedy algorithms**
** Divide and conquer method**
** Brute force with bitmasks**
** Binary search**
Graph algorithms:
- Bfs and shortest path
- Dfs
- Floyed warshal
- Dijkstra
- Prim (MST)
- Kruscal (MST)
- Eulerian tour (Fleury)
- Topological sort
- Strongly connected components (SCC)
- Directed acyclic graphs (DAG)
- 2-sat
- Cut vertices
- Cut edges
** Data structures:**
- Disjoint sets union (DSU)
- Segment tree
- Lazy segment tree
- Fenwick tree (BIT)
- Red black tree
- Mo’s algorithm
- working with offline queries
- Lowest common ancestor (LCA)
- Sparse table
Modular inverses and combinatorics problems