-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLegendary Grandmaster.txt
60 lines (49 loc) · 2.35 KB
/
Legendary Grandmaster.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Competitive programming covers a wide range of topics that are essential for solving algorithmic and mathematical problems efficiently in programming contests. Here are some of the key topics you should consider studying for competitive programming:
1. **Data Structures**:
- Arrays
- Linked Lists
- Stacks and Queues
- Trees (Binary Trees, Binary Search Trees, Heaps, etc.)
- Hash Tables
- Priority Queues (Heap)
- Disjoint Set Union (Union-Find)
2. **Algorithms**:
- Sorting Algorithms (QuickSort, MergeSort, etc.)
- Searching Algorithms (Binary Search)
- Graph Algorithms (Depth-First Search, Breadth-First Search, Dijkstra's Algorithm, Kruskal's Algorithm, etc.)
- Dynamic Programming
- Greedy Algorithms
- Divide and Conquer
- Backtracking
3. **Mathematics**:
- Number Theory (Prime Numbers, GCD, LCM, Modular Arithmetic)
- Combinatorics (Permutations, Combinations)
- Probability
- Geometry (Coordinate Geometry, Computational Geometry)
- Basic Calculus (if necessary)
4. **String Manipulation**:
- String Algorithms (Substring Search, String Compression, etc.)
- Regular Expressions
- Trie Data Structure
5. **Advanced Topics** (for more challenging problems):
- Segment Trees
- Fenwick Trees (Binary Indexed Trees)
- Advanced Graph Algorithms (Topological Sort, Floyd-Warshall, etc.)
- Advanced Data Structures (Splay Trees, Treaps, etc.)
6. **Bit Manipulation**:
- Bitwise Operations
- Bitmasking
7. **Dynamic Programming**:
- Longest Common Subsequence (LCS)
- Longest Increasing Subsequence (LIS)
- Edit Distance
- Knapsack Problems
8. **Game Theory**:
- Nim Game
- Grundy Numbers
9. **Advanced Techniques**:
- Two Pointer Technique
- Sliding Window Technique
10. **Practice, Practice, Practice**:
- Participate in online coding contests (e.g., Codeforces, AtCoder, LeetCode, HackerRank, etc.) to apply your knowledge and gain experience.
It's important to note that competitive programming requires consistent practice and problem-solving. Start with easier problems and gradually move on to more challenging ones as you gain confidence in your skills. Online platforms and resources like GeeksforGeeks, Codeforces, LeetCode, and competitive programming books can be valuable for learning and practicing these topics.