How To Became Master in Competitive Programming
Competitive programming is nowadays a popular spot.Which will increase your thinking capacity out of box.By joining link you get a solution.People are nowadays making career in competitive programming and get a good job in multinational companies like -google,microsoft,amazon etc.You should know the basic fundamental of math before entering in competitive programming.
Topic for Beginners-
- Data Structure-Data Structure is way to store value.This means you have something to store value.There are lot of Data Structure in language (eg.CPP,C etc) like-Vector ,Array,map,set,multiset,stack,queue,deque etc.
- Complexity Analysis- complexity analysis is very important because you can not do any calculation in any time .There are time limit is given you have to find out the solution which will be fit in given time limit.Without understanding of time limit or complexity like you are in war without swords.
- Basic fundamental of mathematics-Mathematics is the root of competitive programming without mathematics like you are making making spicy dishes without chilli.You have to good understanding of addition subtraction,multiplication etc.
- Recursion-You have to apply know the recursion because one day in competitive programming you stuck while you find that same step is repeating.
- Greedy Algorithms-Greedy algorithm is that algorithm when you have to find minimum/maximum as the name suggest Greedy means this you have to do step in greedy way.You have to choose locally optimal choice.
- Dynamic Programming-Dynamic programming is the technique which is used when you find a optimization problem.Optimization meaning minimum or maximum .And one thing always happen in dynamics programming is that current calculation used previous calculations.
- String Algorithms-When you enter in the dynamic programming you find that most of the problem based on string .String is the group of character.You have to know the basic technique like reverse string,delete character in string etc.
- Sorting-Sorting is the way to order number in the increasing or decreasing way that are lot of algorithms based on sorting like -mergesort,bubble sort,selection sort etc.
- Searching-Searching as the name suggest it is using for searching a element in the given data structure,There are Mainly two Searching Algorithms . a)Linear Search b)Binary Search
- Prime +Euclid's GCD Algorithms-In most of the number theory you will figure out that technique used Euclid's algorithm and prime factorization.
- Graph-When you move forward to advanced problem problem contain graph theory like traversing a graph.Traversing Technique like-DFS,BFS etc.Shortest Path,Strongly connected components etc.
- Disjoint Set Union- When we talk about divide a number in group one thing which comes is DSU.It is a DataStructure that track the element which is divided in groups.
- Segment Trees-It comes when you have to work in a range in strict time limit like you have to find the minimum/maximum in given range.Sum of range etc.
- Heaps-Heap is a data structure which is implemented using tree.It is also called priority queue. There are Two type of Heap a)min heap b)max heap
- Binary Index Tree-It is also called Fenwick Tree..It is used to perform query efficiently like updation etc.
- Lowest Common Ancestors
- Divide and conquer-As the name suggest is divide and use calculation.It is used recursion some algorithms like-merge sort used divide and conquer technique.
- Advanced Dynamic Programming
- Sieve of Eratosthenes- it is a technique which is used to find prime number is an ancient algorithm.
Happy Coding 😍
Great !! You are doing a great work !! Whats you codechef id ?
ReplyDeleteThanks Brother
ReplyDelete