ACA'23
PROGRAMMING
MATHEMANIA
Presentation by
Mohak Singh Rana
Rajat Gattani
Introduction
In this project, we will explore the relationship between mathematics
and competitive programming, and how math can be used to solve
complex problems efficiently. We will explore various mathematical
algorithms and techniques that are frequently used in competitive
programming, including Number Theory, Graph Theory, and
Combinatorics. This project will provide a comprehensive overview of
the role of mathematics in competitive programming
1
Table Of Content
Our Team
Topics
Week Distribution
Methodology
Evaluation Criteria
2
Our Team
Rajat Gattani Mohak Singh Rana
Y21 Y21
CSE CSE
3
Topics
• Week 1: STL, Hashing
• Week 2: Modular Arithmetic, Sieve of Eratosthenes, Theorems in
number theory
• Week 3: Algorithm Paradigms
• Week 4 and Week 5 : Graph Algorithm
• Week 6: Bit Manipulation, Matrix Exponentiation
• Week 7 and Week 8: Dynamic Programming 4
Week 1
• Basic concepts of C++
• Essential data structures used extensively in programming
• Implementation of these data structures in C++ using STL
• Introduction to hashing
• Problems involving hashing
• Seperate chaining and open address collision handling
• Double hashing 5
Week 2
• Basics of modular arithmetic
• Sieve of eratosthenes and segmented sieves
• Fermats theorem
• Euler totient function
• Chinese remainder theorem
• Optional: Square root decomposition
6
Week 3
• Divide and conquer paradigm
• Binary Search
• Merge Sort
• Quick Sort and inversion count
• Greedy paradigm
• Coin change
7
Week 4 and Week 5
• Basics of graphs
• Adjacency lists
• BFS and DFS Traversal
• Theoretical discussion as well as code implementation
• Djikshtra's Algorithm
• Spanning Trees
8
Week 6
• Bitwise Operators
• Unique number and subsets problem
• Travelling salesman
• Binary exponentiation and fast multiplication
• Matrix Exponentiation
9
Week 7 and Week 8
• Introduction to dynamic programming
• Recursion problems using dynamic programming
• Travelling salesman using dp
• Longest common subsequence problem
• Knapsack Problem
• Optional: Unique paths in a grid with obstacles
10
Methodology
• Step 1: Theoretical description of the concept using examples
• Step 2: C++ code implementation of the problem
• Step 3: Reference material for students to refer to for additional clarity in the topic.
• Step 4: Topicwise codeforces contests and problem sheets
• Step 5: Doubt sessions and active discord participation
11
Evaluation Criteria
2 day long contest on codeforces involving
questions on concepts done till then for mid term
and end term evaluation
One mathematical assignment submission
(theoretical questions will be asked)
A minimum passing percentage will be applied
12
ACA'23
THANK YOU!