0% found this document useful (0 votes)
520 views13 pages

Codechef Certified Data Structure & Algorithms Programme (Ccdsap)

getting started with codechef and competitive programming

Uploaded by

Nikhil Kumar
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)
520 views13 pages

Codechef Certified Data Structure & Algorithms Programme (Ccdsap)

getting started with codechef and competitive programming

Uploaded by

Nikhil Kumar
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/ 13

Username Password Login New

 Overview
Forgot Password
Updates
PRACTICE COMPETE DISCUSS COMMUNITY HELP ABOUT
Levels

Next Exam Date


CodeChef
 Details Certified Data Structure & Algorithms
July
Programme
Schedule (CCDSAP) 2018 8
Prepare

Enroll
Foundation

Advanced
Registration Closes on 22nd June 2018
Expert

 Examination
Prepare
 FAQ
Contact Us
New
Be a Representative

Dashboard
We have put up the best preparation resources that we found on the internet together for everyone to learn
from them. These are handpicked resources that we found over the last few years, mostly recommended by
the community and vetted by our admins. We believe that this is a gold mine of information and is available
for free to anyone who wants to learn data structures and algorithms even if she does now want to give the
exam.

For those who are still finding the material difficult, we are also conducting summer workshops in a couple
of cities - Hyderabad and Bangalore . There are many more workshops coming up, and you can stay up-
to-date with the schedule through our social media or mailing lists.

We will be conducting many more such workshops across the country. If your college is willing to do this
and there are more than 50 students wanting to take it up, you can ask your faculty/college management to
send us an email to [email protected] .

Or if you want to host/organise it in your city, you can also get in touch with us.

This section lists out the syllabus, the learning resources and Mock Tests to help you prepare for
the Certification test. The resources that we list here are references that we have collected over the
internet and some of them from our own website. While we do recommend these resources based
on the inputs of our user community, we do not claim that these are the most authoritative Learning
Resources about any topic. Please feel free to find out what suits best to you.

We have also prepared a Mock Test for each level. A Mock Test is an open assessment contest
that will help you assess yourself for the certification exam after you are ready with the topics. For
each level we have different Mock Tests. These contests will run forever. We strongly recommend
you to solve these problems in the same duration of time as the duration of the exam before you
take the exam.

Candidates can expect problems from the following topics to come in the exam.

Foundation 
Syllabus:

The syllabus for each level is mentioned below:

1. Basic Data Structures: Arrays, Strings, Stacks, Queues


2. Asymptotic analysis (Big-O notation)
3. Basic math operations (addition, subtraction, multiplication, division, exponentiation)
4. Sqrt(n) primality testing
5. Euclid’s GCD Algorithm
6. Basic Recursion
7. Greedy Algorithms
8. Basic Dynamic Programming
9. Naive string searching
9 a e st g sea c g
10. O(n logn) Sorting
 Overview 11. Binary Searching
Updates
Learning Resources:
Levels
1. Asymptotic analysis (Big-O notation)

 Details a. Basic

i. youtube.com - Time complexity of a computer program


Schedule
ii. youtube.com - Big-O notation in 5 minutes - The basics
Prepare

iii. youtube.com - Definition Of Big O Notation - Intro to Theoretical Computer Science


Foundation
iv. youtube.com - Algorithms Lecture 1 -- Introduction to asymptotic notations
Advanced
v. iarcs.org.in - Measuring the efficiency of algorithms
Expert
vi. interactivepython.org - Particularly for Big-O notation

 Examination b. Advanced

i. rob-bell.net - A beginner's guide to Big O notation


 FAQ
ii. youtube.com - Big O Notation, Gayle Laakman McDowell
Contact Us
New
iii. web.mit.edu - Big O notation
Be a Representative
iv. youtube.com - Time and space complexity analysis of recursive programs - using
Dashboard factorial
v. A very nice tutorial with examples

c. Practice Problems

i. Check some MCQs on space and time complexity here.


ii. You can see some problems with solutions here: Time complexity of an algorithm

2. Arrays

a. Resources

i. codechef.com - Data Structure Tutorial: Array


ii. cs.cmu.edu - Arrays
iii. geeksforgeeks.org - Arrays Data Structure

b. Practice Problems

i. codechef.com - LECANDY, editorial


ii. codechef.com - CNOTE, editorial ;
iii. codechef.com - SALARY, editorial
iv. codechef.com - CHN15A, editorial
v. codechef.com - RAINBOWA, editorial
vi. codechef.com - FRGTNLNG, editorial
vii. codechef.com - COPS, editorial

3. Strings

a. Resources

i. tutorialspoint.com - C++ strings


ii. guru99.com - Java strings
iii. docs.python.org - Python strings
iv. tutorialspoint.com - Python strings
v. Many questions on the string:
vi. geeksforgeeks.org - String Data Structure

b. Practice Problems

i. codechef.com - CSUB, editorial


ii. codechef.com - LAPIN, editorial

4. Stack and Queue

a. Resources

i. geeksforgeeks.org - Stack Data Structure


ii. geeksforgeeks.org - Introduction and Array Implementation
iii. tutorialspoint.com - Data Structures Algorithms
iv. cs.cmu.edu - Stacks
v. cs.cmu.edu - Stacks and Queues
vi. cs.cmu.edu - Stacks and Queues
Q

b. Practice Problems
 Overview
i. spoj.com - JNEXT
Updates
ii. spoj.com - STPAR

Levels iii. spoj.com - ONP


iv. codechef.com - COMPILER
 Details
v. spoj.com - MMASS

Schedule vi. spoj.com - HISTOGRA

Prepare vii. codeforces.com - D. Maximum Xor Secondary


Foundation viii. spoj.com - ANARC09A

Advanced
ix. codeforces.com - C. Minimal string
x. codeforces.com - B. Alternating Current
Expert
xi. codeforces.com - C. Longest Regular Bracket Sequence
 Examination
5. Basic math operations (addition, subtraction, multiplication, division, exponentiation)
 FAQ
a. codechef.com - A tutorial on Fast Modulo Multiplication
Contact Us
6. Euclid’s GCD Algorithm
New
Be a Representative
a. Resources
Dashboard i. youtube.com - Mycodeschool video
ii. khanacademy.org - The Euclidean Algorithm
iii. geeksforgeeks.org - Example program to find gcd in c++:

7. Prime Numbers, divisibility of numbers

a. Resources:

i. Only O(sqrt(n)) algorithm for finding whether a number is a prime, factorization of a


number.
ii. Finding prime factors by taking the square root

b. Practice Problems:

i. community.topcoder.com - DivisorInc
ii. community.topcoder.com - Prime Polynom
iii. community.topcoder.com - Prime Anagrams
iv. community.topcoder.com - Refactoring

8. Basic Recursion

a. Resources

i. topcoder.com - An Introduction to Recursion, Part 1


ii. topcoder.com - An Introduction to Recursion: Part 2
iii. geeksforgeeks.org - Recursion ;(along with questions)
iv. web.mit.edu - Recursion
v. csee.umbc.edu - Recursion ;(Examples with exercises)
vi. loveforprogramming.quora.com - Backtracking, Memoization & Dynamic Programming

b. Practice Problems

i. codechef.com - NOKIA, editorial


ii. codechef.com - TRISQ, editorial
iii. codechef.com - LFSTACK, editorial
iv. codechef.com - FICE, editorial

9. Greedy Algorithms

a. Resources

i. iarcs.org.in - Greedy Algorithms


ii. iarcs.org.in - Greedy Algorithms
iii. topcoder.com - Greedy Algorithms
iv. Greedy Algorithms

b. Practice Problems

i. codechef.com - TACHSTCK, editorial


ii. codechef.com - CIELRCPT, editorial
iii. codechef.com - MAXDIFF, editorial
iv. codechef.com - CHEFST, editorial
v. codechef.com - CAKEDOOM, editorial
 Overview vi. codechef.com - CLETAB, editorial
Updates vii. codechef.com - TADELIVE, editorial
viii. codechef.com - MANYCHEF, editorial
Levels
ix. codechef.com - MMPROD, editorial
 Details x. codechef.com - CHEFTMA, editorial
xi. codechef.com - STICKS, editorial
Schedule
xii. spoj.com - BAISED
Prepare

xiii. spoj.com - BALIFE


Foundation
xiv. spoj.com - GCJ101BB
Advanced
xv. codechef.com - FGFS
Expert
xvi. codechef.com - KNPSK
 Examination xvii. codechef.com - LEMUSIC
xviii. spoj.com - ARRANGE
 FAQ
xix. spoj.com - FASHION
Contact Us

Be a Representative New 10. Dynamic programming (Basic DP)

a. Resources
Dashboard
i. medium.freecodecamp.org - Demystifying Dynamic Programming
ii. iarcs.org.in - Dynamic Programming - Tiling
iii. topcoder.com - Dynamic Programming – From Novice to Advanced
iv. illinois.edu - Dynamic Programming ;(Exercises are recommended)
v. codechef.com - Dynamic Programming
vi. geeksforgeeks.org - Dynamic Programming ;(Contains a lot of practice sessions)
vii. MIT OCW (Contains some Advanced topics as well)

i. Dynamic Programming I
ii. Dynamic Programming II
iii. Dynamic Programming III
iv. Dynamic Programming IV

b. Practice Problems

i. codechef.com - ALTARAY, editorial


ii. codechef.com - DELISH, editorial
iii. codechef.com - DBOY, editorial
iv. codechef.com - XORSUB, editorial
v. codechef.com - GRID, editorial
vi. codechef.com - TADELIVE, editorial
vii. codechef.com - FROGV, editorial
viii. codechef.com - MATRIX2, editorial
ix. codechef.com - AMSGAME2, editorial
x. spoj.com - MDOLLS
xi. spoj.com - MSTICK
xii. spoj.com - MCARDS
xiii. spoj.com - MIXTURES
xiv. spoj.com - SAMER08D
xv. spoj.com - AIBOHP

11. Naive string searching

a. Resources

i. geeksforgeeks.org - Naive Pattern Searching

12. Sorting

a. khanacademy.org
b. visualgo.net
c. iarcs.org.in
d. Merge sort

i. youtube.com - Merge sort algorithm


ii. Practice Problems
codechef.com -MRGSRT

 Overview e. Quick sort

Updates i. youtube.com - Quicksort algorithm


ii. Practice Problems
Levels codechef.com -TSORT

 Details f. Counting sort

i. geeksforgeeks.org - Counting Sort


Schedule
ii. Practice Problems
Prepare

i. codechef.com - TACHSTCK, editorial


Foundation
ii. codechef.com - STICKS, editorial
Advanced

Expert 13. Binary Search

a. Resources
 Examination
i. topcoder.com (Try solving problems of Simple and Moderate level as mentioned in the
 FAQ end of the link)

Contact Us ii. codechef.com

Be a Representative New iii. usfca.edu


iv. khanacademy.org
Dashboard
b. Detailed Theoretical analysis

i. cmu.edu (A theoretical analysis)

c. Problems

i. geeksforgeeks.org - Binary Search (Contains some solved problems)


ii. codechef.com - STRSUB, editorial
iii. codechef.com - ASHIGIFT, editorial
iv. codechef.com - STACKS, editorial
v. codechef.com - DIVSET, editorial
vi. codechef.com - LOWSUM, editorial
vii. codechef.com - SNTEMPLE, editorial
viii. codechef.com - SNAKEEAT, editorial
ix. codechef.com - SCHEDULE, editorial
x. codechef.com - RIGHTTRI, editorial
xi. codechef.com - FORESTGA, editorial
xii. codechef.com - CHEFHCK2,editorial
xiii. spoj.com - ABCDEF
xiv. spoj.com - NOTATRI
xv. spoj.com - SCALE
xvi. spoj.com - SUMFOUR
xvii. spoj.com - SUBSUMS
xviii. spoj.com - ANARC05B
xix. spoj.com - RENT
xx. spoj.com - PIE
xxi. spoj.com - MKUHAR
xxii. spoj.com - SVADA
xxiii. spoj.com - SUBS

Mock Test:
1. Test 1 - codechef.com/FLMOCK01
2. Test 2 - codechef.com/FLMOCK02
3. Test 3 - codechef.com/FLMOCK03
4. Test 4 - codechef.com/FLMOCK04

Advanced 
This level is intended to test that the candidate has a very good grasp of algorithms and data
structures, and can solve most problems that arise in practice. Candidates can expect problems
from the following topics to come in the exam.
Syllabus:
 Overview
Everything in the Foundation Level, along with:
Updates
1. Heaps (priority queue)
Levels
2. Disjoint Set Union

 Details 3. Segment Trees


4. Binary Index Tree (Fenwick tree)
Schedule
5. Trees (traversals, tree dynamic programming)
Prepare

6. Finding Lowest Common Ancestors (O(log N) solution where N is number of nodes).


Foundation
7. Graph Algorithms:
Advanced
a. Finding connected components and transitive closures.
Expert
b. Shortest-path algorithms (Dijkstra, Bellman-Ford, Floyd-Warshall)
 Examination c. Minimum spanning tree (Prim and Kruskal algorithms)
d. Biconnectivity in undirected graphs (bridges, articulation points)
 FAQ
e. Strongly connected components in directed graphs
Contact Us
f. Topological Sorting
New
Be a Representative
g. Euler path, tour/cycle.
Dashboard 8. Modular arithmetic including division, inverse
9. Amortized Analysis
10. Divide and Conquer
11. Advanced Dynamic Programming problems (excluding the dp optimizations which are added in
expert level)
12. Sieve of Eratosthenes

Learning Resources:

1. Heaps (priority queue)

a. Resources

i. cs.cmu.edu
ii. eecs.wsu.edu
iii. geeksforgeeks.org
iv. visualgo.net
v. iarcs.org.in

b. Practice Problems

i. codechef.com - IPCTRAIN, editorial


ii. codechef.com - ANUMLA, editorial
iii. codechef.com - KSUBSUM, editorial
iv. codechef.com - RRATING, editorial
v. codechef.com - TSECJ05, editorial
vi. spoj.com - WEIRDFN
vii. codechef.com - CAPIMOVE, editorial
viii. spoj.com - RMID2
ix. spoj.com - LAZYPROG
x. spoj.com - EXPEDI
xi. acm.timus.ru
xii. baylor.edu - Maze Checking and Visualization
xiii. codechef.com - MOSTDIST, editorial

2. Disjoint Set Union

a. Resources

i. topcoder.com
ii. harvard.edu
iii. ucdavis.edu
iv. visualgo.net

b. Practice Problems

i. codechef.com - GALACTIK, editorial


ii. codechef.com - DISHOWN, editorial
iii. codechef.com - JABO, editorial
iv. codechef.com - PARITREE, editorial
 Overview
v. codechef.com - FILLMTR, editorial
Updates
vi. B. Mike and Feet
Levels vii. D. Quantity of Strings
viii. codechef.com - SETELE, editorial
 Details
ix. codechef.com - MAZE, editorial
Schedule x. codechef.com - MAGICSTR, editorial
Prepare xi. codechef.com - MTRWY, editorial

Foundation xii. codechef.com - BIGOF01, editorial


Advanced xiii. codechef.com - FIRESC, editorial

Expert
3. Segment Trees

 Examination a. Resources

i. wcipeg.com
 FAQ
ii. topcoder.com
Contact Us
iii. kartikkukreja.wordpress.com
New
Be a Representative
iv. visualgo.net
Dashboard v. iarcs.org.in

b. Practice Problems

i. spoj.com - GSS1
ii. spoj.com - GSS2
iii. codeforces.com - Classic Segment Tree (Expert Level)
iv. spoj.com - IOPC1207
v. spoj.com - ORDERSET
vi. spoj.com - HELPR2D2
vii. spoj.com - ANDROUND
viii. spoj.com - HEAPULM
ix. spoj.com - NICEDAY
x. spoj.com - YODANESS
xi. spoj.com - DQUERY
xii. spoj.com - KQUERY
xiii. spoj.com - FREQUENT
xiv. spoj.com - GSS3
xv. spoj.com - GSS4
xvi. spoj.com - GSS5
xvii. spoj.com - KGSS
xviii. spoj.com - HELPR2D2
xix. spoj.com - BRCKTS
xx. spoj.com - CTRICK
xxi. spoj.com - MATSUM
xxii. spoj.com - RATING
xxiii. spoj.com - RRSCHED
xxiv. spoj.com - SUPPER
xxv. spoj.com - ORDERS
xxvi. codechef.com - LEBOBBLE
xxvii. codechef.com - QUERY
xxviii. spoj.com - TEMPLEQ
xxix. spoj.com - DISUBSTR
xxx. spoj.com - QTREE
xxxi. spoj.com - QTREE2
xxxii. spoj.com - QTREE3
xxxiii. spoj.com - QTREE4
xxxiv. spoj.com - QTREE5

c. Problems on segment tree with lazy propagation

i. spoj.com - HORRIBLE (must do basic lazy propagation problem)


ii spoj com LITE (a nice lazy propagation problem)
ii. spoj.com - LITE (a nice lazy propagation problem)
iii. spoj.com - MULTQ3 (another nice lazy propagation problem)
 Overview iv. codechef.com - CHEFD
Updates
v. codechef.com - FUNAGP (a difficult lazy propagation problem.)

Levels vi. RPAR (a difficult and nice lazy propagation)


vii. codechef.com - ADDMUL
 Details viii. spoj.com - SEGSQRSS (a difficult lazy propagation problem)

Schedule ix. spoj.com - KGSS

Prepare x. codeforces.com - C. Circular RMQ


Foundation
xi. codeforces.com - E. Lucky Queries (must do hard problem on lazy propagation)
xii. codeforces.com - E. A Simple Task
Advanced
xiii. codeforces.com - C. DZY Loves Fibonacci Numbers (important problem to do,
Expert
introduces some nice properties over lazy propagation)
 Examination xiv. codeforces.com - D. The Child and Sequence
xv. codeforces.com - E. Lucky Array
 FAQ
Contact Us 4. Binary Index Tree (Fenwick tree)

Be a Representative New a. Resources

i. topcoder.com
Dashboard
ii. iarcs.org.in
iii. visualgo.net

b. Practice Problems:
Please solve the problems mentioned in the above segment tree practice problems
section. Note that usually, it's difficult to do range updates in binary indexed trees. Mostly,
it is used for for range query and point update. However, you can check the following
article for checking how some simple specific kind of range updates can be peformed on
binary indexed tree (http://petr-mitrichev.blogspot.in/2013/05/fenwick-tree-range-
updates.html). Note that range updates on BIT is not a part of the syllabus.

i. spoj.com - INVCNT
ii. spoj.com - TRIPINV

5. Trees (traversals)

a. Resources

i. slideshare.net
ii. iarcs.org.in
iii. berkeley.edu

b. Practice Problems

i. spoj.com - TREEORD

6. Finding Lowest Common Ancestors (O(log N) solution where N is number of nodes)

a. Resources

i. topcoder.com

7. Depth First Search, Breadth First Search (Finding connected components and transitive
closures)

a. Resources

i. geeksforgeeks.org - Connected Components in an undirected graph


ii. geeksforgeeks.org - Transitive closure of a graph
iii. geeksforgeeks.org - Depth First Traversal or DFS for a Graph
iv. iarcs.org.in - Basic Graph Algorithms
v. visualgo.net - Graph Traversal
vi. harvard.edu - Breadth-First Search

b. Practice Problems

i. codechef.com - FIRESC, editorial


ii. spoj.com - BUGLIFE
iii. spoj.com - CAM5
iv. spoj.com - GCPC11J
v. spoj.com - KFSTB
vi. spoj.com - PT07Y
vii. spoj.com - PT07Z
viii. spoj.com - LABYR1

 Overview ix. spoj.com - PARADOX

Updates
x. spoj.com - PPATH ;(must do bfs problem)
xi. spoj.com - ELEVTRBL (bfs)
Levels
xii. spoj.com - QUEEN (bfs)

 Details xiii. spoj.com - SSORT ;(cycles in a graph)


xiv. spoj.com - ROBOTGRI ;(bfs)
Schedule
8. Shortest-path algorithms (Dijkstra, Bellman-Ford, Floyd-Warshall)
Prepare

a. Resources
Foundation

Advanced
i. geeksforgeeks.org - Dijkstra’s shortest path algorithm
ii. Iarcs.org.in - Shortest paths
Expert
iii. Visualgo.net - Single-Source Shortest Paths (SSSP)
 Examination
b. Practice Problems
 FAQ i. codechef.com - DIGJUMP, editorial
Contact Us ii. codechef.com - AMR14B, editorial
New
Be a Representative iii. codechef.com - INSQ15_F, editorial
iv. codechef.com - SPSHORT, editorial (slightly difficult dijkstra's problem.)
Dashboard
v. codechef.com - RIVPILE, editorial
vi. spoj.com - SHPATH
vii. spoj.com - TRAFFICN
viii. spoj.com - SAMER08A
ix. spoj.com - MICEMAZE
x. spoj.com - TRVCOST
xi. codechef.com - PAIRCLST, editorial

9. Bellman Ford Algorithm

a. Resources

i. geeksforgeeks.org - Dynamic Programming - Bellman–Ford Algorithm


ii. compprog.wordpress.com - ;One Source Shortest Path - Bellman-Ford Algorithm

b. Practice Problem

i. community.topcoder.com - PeopleYouMayKnow
ii. codeforces.com - D. Robot Control
iii. spoj.com - ARBITRAG - Arbitrage ;(Floyd Warshall)
iv. community.topcoder.com - NetworkSecurity ;(Floyd Warshall)

10. Minimum spanning tree (Prim and Kruskal algorithms)

a. Resources

i. algs4.cs.princeton.edu - Minimum Spanning Trees


ii. iarcs.org.in - Spanning trees
iii. visualgo.net - Spanning Tree

b. Practice Problem

i. spoj.com - MST
ii. spoj.com - NITTROAD
iii. spoj.com - BLINNET
iv. spoj.com - CSTREET
v. spoj.com - HIGHWAYS
vi. spoj.com - IITWPC4I
vii. codechef.com - MSTQS, editorial
viii. codechef.com - CHEFGAME, editorial
ix. codechef.com - GALACTIK, editorial
x. codechef.com - GOOGOL03, editorial
xi. spoj.com - KOICOST

11. Biconnectivity in undirected graphs (bridges, articulation points)

a. Resources

i. e-maxx-eng.appspot.com - Finding Bridges in a Graph


ii. iarcs.org.in - Articulation Points
iii. pisces.ck.tp.edu.tw - Articulation Points
 Overview
b. Practice Problem
Updates
i. uva.onlinejudge.org - Network
Levels ii. icpcarchive.ecs.baylor.edu - Building Bridges
iii. uva.onlinejudge.org - Tourist Guide
 Details
iv. acm.tju.edu.cn - Network
Schedule
v. spoj.com - EC_P - Critical Edges
Prepare

vi. spoj.com - SUBMERGE - Submerging Islands


Foundation vii. spoj.com - POLQUERY - Police Query
Advanced viii. codeforces.com - A. Cutting Figure
Expert
12. Strongly connected components in directed graphs
 Examination a. Resources

 FAQ i. iarcs.org.in - Strongly connected components

Contact Us ii. theory.stanford.edu - Strongly Connected Components

Be a Representative New b. Practice Problem

i. spoj.com - ANTTT
Dashboard
ii. spoj.com - CAPCITY
iii. spoj.com - SUBMERGE
iv. codechef.com - MCO16405, editorial
v. spoj.com - BOTTOM
vi. spoj.com - BREAK
vii. community.topcoder.com - Marble Collection Game

13. Topological Sorting

a. Resources

i. geeksforgeeks.org - Topological Sorting

b. Practice Problem

i. spoj.com - TOPOSORT ;
ii. codeforces.com - C. Fox And Names ;
iii. codechef.com - RRDAG, editorial
iv. spoj.com - RPLA
v. codechef.com - CL16BF (topological sort with dp), editorial
vi. spoj.com - MAKETREE

14. Euler path, tour/cycle.

a. Resources

i. math.ku.edu - Euler Paths and Euler Circuits

b. Practice Problem

i. spoj.com - WORDS1
ii. codechef.com - CHEFPASS, editorial
iii. codechef.com - TOURISTS, editorial
iv. codeforces.com - D. New Year Santa Network
v. B. Strongly Connected City
vi. codechef.com - PEOPLOVE
vii. codeforces.com - D. Tanya and Password
viii. codeforces.com - E. One-Way Reform
ix. spoj.com - GCPC11C
x. spoj.com - MAKETREE

15. Modular arithmetic including division, inverse

a. Resources

i. codechef.com - Fast Modulo Multiplication (Exponential Squaring)


ii. codechef.com - Best known algos for calculating nCr % M ;(only for expert level)

16. Amortized Analysis

a. Resources
i. ocw.mit.edu - Amortized Analysis

 Overview ii. wikipedia.org - Amortized Analysis

Updates iii. iiitdm.ac.in - Amortized Analysis

Levels 17. Divide and Conquer

a. Resources
 Details
i. cs.cmu.edu - Divide-and-Conquer and Recurrences
Schedule ii. geeksforgeeks.org - Divide-and-Conquer
Prepare

b. Practice Problem
Foundation
i. codechef.com - MRGSRT, editorial
Advanced
ii. spoj.com - HISTOGRA
Expert iii. codechef.com - TASTYD, editorial

 Examination iv. codechef.com - RESTPERM, editorial


v. codechef.com - ACM14KP1, editorial
 FAQ
18. Advanced Dynamic Programming problems (excluding the dp optimizations which are
Contact Us
added in expert level, Please go through the basic DP resources and problems mentioned in
New
Be a Representative foundation level resource.)

a. Resources
Dashboard
i. apps.topcoder.com - Commonly used DP state domains
ii. apps.topcoder.com - Introducing Dynamic Programming
iii. apps.topcoder.com - Optimizing DP solution
iv. codeforces.com - DP over Subsets and Paths

b. Problems for Advanced DP

i. spoj.com - HIST2 ;(dp bitmask)


ii. spoj.com - LAZYCOWS ;(dp bitmask)
iii. spoj.com - TRSTAGE ;(dp bitmask)
iv. spoj.com - MARTIAN
v. spoj.com - SQRBR
vi. spoj.com - ACMAKER
vii. spoj.com - AEROLITE
viii. spoj.com - BACKPACK
ix. spoj.com - COURIER
x. spoj.com - DP
xi. spoj.com - EDIST
xii. spoj.com - KRECT
xiii. spoj.com - GNY07H
xiv. spoj.com - LISA
xv. spoj.com - MINUS
xvi. spoj.com - NAJKRACI
xvii. spoj.com - PHIDIAS
xviii. spoj.com - PIGBANK
xix. spoj.com - PT07X
xx. spoj.com - VOCV
xxi. spoj.com - TOURIST
xxii. spoj.com - MKBUDGET
xxiii. spoj.com - MMAXPER
xxiv. spoj.com - ANARC07G
xxv. spoj.com - MENU
xxvi. spoj.com - RENT ;(dp with segment tree/BIT)
xxvii. spoj.com - INCSEQ ;(dp with segment tree/BIT)
xxviii. spoj.com - INCDSEQ ;(dp with segment tree/BIT)
xxix. You can solve some advanced problems from
xxx. codeforces.com - Dynamic Programming Type

19. Sieve of Eratosthenes

a. Resources:

i codechef com Sieve Methods


i. codechef.com - Sieve Methods

b. Practice Problems
 Overview
i. spoj.com - TDKPRIME
Updates
ii. spoj.com - TDPRIMES
Levels iii. spoj.com - ODDDIV ;(sieve + binary search)
iv. spoj.com - NDIVPHI ;O(N) prime testing algorithm)
 Details
v. spoj.com - DIV ;(divisor sieve)
Schedule vi. codechef.com - LEVY, editorial
Prepare vii. codechef.com - PRETNUM, editorial

Foundation viii. codechef.com - KPRIME, editorial


Advanced ix. codechef.com - DIVMAC, editorial (segment tree with sieve)

Expert x. codechef.com - PPERM, editorial ;(a bit advanced sieve application)

 Examination 20. General

a. Stanford Algoriths 1
 FAQ
b. Stanford Algoriths 2
Contact Us
New
Be a Representative Mock Test:

Dashboard 1. Test 1 - codechef.com/ALMOCK01


2. Test 2 - codechef.com/ALMOCK02
3. Test 3 - codechef.com/ALMOCK03
4. Test 4 - codechef.com/ALMOCK04

Expert 
This level is intended to test that the candidate is an expert in algorithms and data structures, and
has a deep understanding of the topics. Candidates can expect problems from the following topics
to come in the exam.

Syllabus:
The syllabus for Expert Level is open-ended. Everything in Advanced Level will be included, along
with:

1. Treaps
2. Persistent Data Structures
3. HLD
4. Centroid Decomposition
5. Computational Geometry
6. Fast Fourier Transforms
7. Game Theory
8. Gaussian Elimination
9. Dynamic Programming Optimizations
10. Advanced String algorithms (Tries, KMP, Aho-Corasik, Suffix arrays, Suffix trees)
11. Flows (Max-Flow, Min Cost Max Flow)

Learning Resources:

1. The resources are listed here.

Mock Test:

1. Coming Soon

Note: These links have been curated to help in preparation for the exams, and also to help the
community in general. But if you own some of the material linked to, and you wouldn’t like them to be
here, please contact us, and we will remove it.
 Overview CodeChef is a non-commercial competitive programming community

Updates
About CodeChef About Directi CEO's Corner C-Programming Programming Languages Contact Us

© 2009Levels
Directi Group. All Rights Reserved. CodeChef uses SPOJ © by Sphere Research Labs
In order to report copyright violations of any kind, send in an email to [email protected] The time now is: 11:03:35 AM
Your IP: 42.111.10.15

 Details
CodeChef - A Platform for Aspiring Programmers
CodeChef was created as a platform to help programmers make it big in the world of algorithms, computer programming and programming contests. At CodeChef we work hard to
revive Schedule
the geek in you by hosting a programming contest at the start of the month and another smaller programming challenge in the middle of the month. We also aim to have
training sessions and discussions related to algorithms, binary search, technicalities like array size and the likes. Apart from providing a platform for programming competitions,
Prepare

CodeChef also has various algorithm tutorials and forum discussions to help those who are new to the world of computer programming.
PracticeFoundation
Section - A Place to hone your 'Computer Programming Skills'
Try your hand at one of our many practice problems and submit your solution in a language of your choice. Our programming contest judge accepts solutions in over 35+
Advanced
programming languages. Preparing for coding contests were never this much fun! Receive points, and move up through the CodeChef ranks. Use our practice section to better
prepare yourself
Expert for the multiple programming challenges that take place through-out the month on CodeChef.
Compete - Monthly Programming Contests and Cook-offs
Here is
Examination
where you can show off your computer programming skills. Take part in our 10 day long monthly coding contest and the shorter format Cook-off coding contest. Put
yourself up for recognition and win great prizes. Our programming contests have prizes worth up to INR 20,000 (for Indian Community), $700 (for Global Community) and lots more
CodeChef goodies up for grabs.
 FAQ
Contact Us
Programming Tools Practice Problems Initiatives
Online
BeIDE
a Representative Easy
New Go for Gold Terms of Service

Upcoming Coding Contests Medium CodeChef for Schools Privacy Policy


Dashboard
Contest Hosting Hard Campus Chapters Refund Policy

Problem Setting Challenge Code of Conduct

CodeChef Tutorials Peer Bug Bounty Program

CodeChef Wiki School

FAQ's

You might also like