0% found this document useful (0 votes)
25 views12 pages

Module-2 - Competitive Programming Complete Course Basic Data Structure

The document outlines a comprehensive course on Competitive Programming, covering various topics such as data structures, algorithms, recursion, dynamic programming, sorting techniques, and binary search. It includes links to class videos, assignments, practice problems, and solutions hosted on platforms like Google Meet, Google Classroom, YouTube, Vjudge, and HackerRank. Each class session provides specific tasks and resources for students to enhance their programming skills.

Uploaded by

onceilovesabnaj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views12 pages

Module-2 - Competitive Programming Complete Course Basic Data Structure

The document outlines a comprehensive course on Competitive Programming, covering various topics such as data structures, algorithms, recursion, dynamic programming, sorting techniques, and binary search. It includes links to class videos, assignments, practice problems, and solutions hosted on platforms like Google Meet, Google Classroom, YouTube, Vjudge, and HackerRank. Each class session provides specific tasks and resources for students to enhance their programming skills.

Uploaded by

onceilovesabnaj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Module-2: Competitive Programming Complete

Course Basic Data Structure

Course Materials:
Google Meet Video call link: https://meet.google.com/bcz-rnei-efo
Google Classroom: https://classroom.google.com/c/NTA5MjI3NzYwMjI4?cjc=5dtysxp
YouTube Playlist: https://youtube.com/playlist?list=PLoa_roVVsxA2C86GZV79HnB5ptSA-r6sv

Class Assignment Contest Links:


Vjudge Contest Link: https://vjudge.net/contest/536767
HackerRank Contest Link:
https://www.hackerrank.com/contests/competitive-programing-complete-course-batch1-contest
Google Classroom: https://classroom.google.com/c/NTA5MjI3NzYwMjI4?cjc=5dtysxp

Submit your Vjudge id and hackerrank id in the below form. Otherwise, your assignment won’t
be accepted :
https://forms.gle/8C3D5pXSRHviaQuBA

Class-1: Introduction to Partial Sum/Prefix Sum and its


Applications

Class Link: https://youtu.be/05mIMo8zGyM

Discussed Topics :

1. A little introduction to the course


2. Introduction to Prefix sum/Partial Sum
3. Implementation of Partial Sum
4. Practice problem
5. https://cses.fi/problemset/task/1646
6. https://www.spoj.com/problems/CSUMQ/

Code Template:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Template.cpp

Task-1 Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-1/Task-1.cpp

Task-2 Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-1/Task-2.cpp

Class tasks are given in the classroom, vjudge and hackerrank.

Class 2: Practice Problems of Partial Sum, Contribution


Technique, XOR Sum Query
Class Link: https://youtu.be/hnLgneOWozk

Discussed Topics :

1. How to solve problems in LeetCode


2. Practice Problems of Partial Sum
3. Contribution Technique
4. XOR Sum Query
5. Task-1: https://leetcode.com/problems/running-sum-of-1d-array/description/
6. Task-2: https://leetcode.com/problems/sum-of-all-odd-length-subarrays/description/
7. Task-3: https://cses.fi/problemset/task/1650/

Task-1 Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-2/Task-1.cpp

Task-2 Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-2/Task-2.cpp

Task-3 Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-2/Task-3.cpp

Class tasks are given in the classroom, vjudge and hackerrank.


Class 3: More Practice Problems on Partial Sum and Contribution
Technique

Class Link: https://youtu.be/pQbC1rhylZE

Discussed Topics :

1. Powerful Observation problem


2. Task-1: https://cses.fi/problemset/task/1660/
3. Task-2: https://cses.fi/problemset/task/1661/

Task-1
Solution:https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-
Course-Basic-Data-Structure/blob/main/Class-3/Task-1.cpp

Task-2 Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-3/Task-2.cpp

Class tasks are given in the classroom, vjudge and hackerrank.

Class 4: A Hard Onsite Contest Problem of Partial Sum and


Contribution Technique

Class Link: https://youtu.be/c4wvjcZRiOk

Discussed Topics :

1. Hard and Powerful Observation Onsite contest problem


2. Task-1:

Problem link(K):
https://drive.google.com/file/d/1COB3MAKc8-7cULag6wRTnUKQrcAgxOPO/view

Submit here:
https://algo.codemarshal.org/contests/iiuc-2020/problems/K
Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-4/Task-1.cpp

Class tasks are given in the classroom, vjudge and hackerrank.

Class 5: A Hard LightOJ Problem of Partial Sum and Contribution


Technique

Class Link: https://youtu.be/SnBTBypI-b4

Discussed Topics :

1. Hard and Powerful Observation LightOJ problem


2. Task-1: https://lightoj.com/problem/be-efficient

Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-5/Task-1.cpp

Class tasks are given in the classroom, vjudge and hackerrank.

Class 6: Introduction to Recursion

Class Link: https://youtu.be/U32JZULeWb0

Discussed Topics:

1. Recursion or Recursive function


2. Calculate factorial using recursion
3. Calculate Fibonacci using recursion
4. How to use dynamic programming to reduce states in recursion
5. HackerRank Task-1:
https://www.hackerrank.com/contests/competitive-programing-complete-course-batch1-contest/
challenges/class-6-aa-task-1-aa-calculate-factorial-using-recursion

Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-6/HackerRank%20Task-1.cpp
6. HackerRank Task-2:
https://www.hackerrank.com/contests/competitive-programing-complete-course-batch1-contest/
challenges/class-6-aa-task-1-aa-calculate-factorial-using-recursion-ii

Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-6/HackerRank%20Task-2.cpp

Class tasks are given in the classroom, vjudge and hackerrank.

Class 7: Introduction to Dynamic Programming and Practice


problems

Class Link: https://youtu.be/vvRyRAuPakM

Discussed Topics:

1. Introduction to Dynamic Programming


2. Basics of Modular Arithmetic
3. Vjudge Task-1: https://lightoj.com/problem/hex-a-bonacci

Vjudge Task-1 Solution:


https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-7/Hex-a-bonacci.cpp

4. HackerRank Task-1:
https://www.hackerrank.com/contests/competitive-programing-complete-course-batch1-contest/
challenges/class-6-aa-task-1-aa-calculate-factorial-using-recursion-iii

HackerRank Task-1 Solution:


https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-7/HackerRank%20Task-1.cpp

Class tasks are given in the classroom, vjudge and hackerrank.


Class 8: Introduction to Insertion sort and Bubble sort.

Class Link: https://youtu.be/uYlsUvejPZM

Discussed Topics:

1. Insertion sort
Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-8/InsertionSort.cpp

2. Bubble sort
Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-8/BubbleSort.cpp

3. And their complexity analysis

4. Task-1: https://vjudge.net/contest/536767#problem/H
Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-8/Task-1.cpp

5. Task-2: https://vjudge.net/contest/536767#problem/I
Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-8/Task-2.cpp

Class tasks are given in the classroom, vjudge and hackerrank.

Class 9: Introduction to Merge Sort and Practice Problems.

Class Link: https://youtu.be/TFyJWbleSTE

Discussed Topics:

1. Merge Sort
Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-9/MergeSort.cpp
2. https://cses.fi/problemset/task/1621/

Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-9/Task-1.cpp

Class tasks are given in the classroom, vjudge and hackerrank.

Class 10: Introduction to Pointer and Structure.

Class Link: https://youtu.be/5juBqemgaeA

Discussed Topics:

1. Pointer
2. Structure.

Class tasks are given in the classroom, vjudge and hackerrank.

Class 11: Structure Sort.

Class Link: https://youtu.be/OKL1joCwsQs

Discussed Topics:

1. Structure Sort
2. Pair Sort
3. Vjudge Task-1: https://vjudge.net/problem/CodeForces-166A
Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-10/Vjudge%20Task-1.cpp

Class tasks are given in the classroom, vjudge and hackerrank.

Class 12: Introduction to Binary Search.


Class Link: https://youtu.be/VSnknW0vJ7s

Discussed Topics:

1. Binary search
2. Google Classroom Task-1: https://leetcode.com/problems/binary-search/
Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-11/Google%20Classroom%20Task-1.cpp

3. Vjudge Task-1: https://vjudge.net/contest/536767#problem/K


Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-11/Vjudge%20Task-1.cpp

4. Google Classroom Task-2: https://leetcode.com/problems/intersection-of-two-arrays/


Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-11/Google%20Classroom%20Task-2.cpp

5. Vjudge Task-2: https://vjudge.net/contest/536767#problem/L


Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-11/Vjudge%20Task-2.cpp

References:
http://www.shafaetsplanet.com/?p=2279
https://cp-algorithms.com/num_methods/binary_search.html#practice-problems

Class tasks are given in the classroom, vjudge and hackerrank.

Class 13: Upper Bound and Lowebound.

Class Link: https://youtu.be/bDu3Yuq2M_A

Discussed Topics:

1. Upper bound
Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-13/Upper_bound.cpp
2. Lower bound
Code:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-13/Lower_bound.cpp

3. Some properties of the upper bound and lower bound:


● Number of values smaller than x = lo
● Number of values greater or equal to x = n - lo
● Number of values less than or equal to x = up
● Number of values greater than x = n - up

4. Google Classroom Task-1:


https://practice.geeksforgeeks.org/problems/first-and-last-occurrences-of-x3116/1
Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-13/Google%20Classroom%20Task-1.cpp

5. Google Classroom Task-2: https://leetcode.com/problems/search-insert-position/


Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-13/Google%20Classroom%20Task-2.cpp

References:
http://www.shafaetsplanet.com/?p=2279
https://cp-algorithms.com/num_methods/binary_search.html#practice-problems

Class tasks are given in the classroom, vjudge and hackerrank.

Class 14: Introduction to Integer Bisection and Practice problems


for upper bound and lower bound

Class Link: https://youtu.be/r_1E-OGzuEY

Discussed Topics:

1. Google Classroom Task-1: https://leetcode.com/problems/two-sum-ii-input-array-is-sorted/


Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-14/Google%20Classroom%20Task-1.cpp

2. Google Classroom Task-2:


https://leetcode.com/problems/count-negative-numbers-in-a-sorted-matrix/
Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-14/Google%20Classroom%20Task-2.cpp

3. Introduction to integer bisection


4. Vjudge Task-1: https://www.spoj.com/problems/MATHLOVE/
Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-14/Vjudge%20Task-1.cpp

Class 15: Integer Bisection and Practice Problems


Class Link: https://youtu.be/bgpMKcNza08

Discussed Topics:

1. Google Classroom Task-1:


https://www.hackerearth.com/practice/algorithms/searching/binary-search/practice-problems/alg
orithm/monks-encounter-with-polynomial/
Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-15/Google%20Classroom%20Task-1.cpp

2. Google Classroom Task-2: https://www.spoj.com/problems/RPLC/


Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-15/Google%20Classroom%20Task-2.cpp

3. Google Classroom Task-3: https://www.spoj.com/problems/SABBIRGAME/


Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-15/Google%20Classroom%20Task-3.cpp
Class 16: Integer Bisection Practice problems
Class Link: https://youtu.be/puFW0EvusrI

Discussed Topics:

1. Google Classroom Task-1:


Problem Link: https://drive.google.com/file/d/1LaA_0J-LsAwyBkdJ9EQbiKPZ-gFrk3bH/view
Submit Link: https://algo.codemarshal.org/contests/ncpc18/problems/I

Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-16/Google%20Classroom%20Task-1.cpp

2. Google Classroom Task-2:https://codeforces.com/problemset/problem/474/B

Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-16/Google%20Classroom%20Task-2.cpp

Class 17: Introduction to Fraction Bisection Practice problems


Class Link: https://youtu.be/hEtw0dgVJ0g

Discussed Topics:

1. Google Classroom Task-1:


https://practice.geeksforgeeks.org/problems/square-root/1

Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-17/Google%20Classroom%20Task-1.cpp

2. Google Classroom Task-2:


http://www.lightoj.com/volume_showproblem.php?problem=1043

Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-17/Google%20Classroom%20Task-2.cpp
Class 18: Fraction Bisection Practice problems
Class Link: https://youtu.be/6ldmR13xPes

Discussed Topics:

1. Google Classroom Task-1:


https://lightoj.com/problem/crossed-ladders

Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-18/Google%20Classroom%20Task-1.cpp

Class 19: Fraction Bisection Practice problems


Class Link: https://youtu.be/MUYJ-34TNH8

Discussed Topics:

1. Google Classroom Task-1:


https://lightoj.com/problem/expanding-rods

Solution:
https://github.com/MuhammadShahriar/Module-2-Competitive-Programming-Complete-Course-
Basic-Data-Structure/blob/main/Class-19/Google%20Classroom%20Task-1.cpp

You might also like