You are not logged in. Please login at www.codechef.com to post your questions!

×

Preparing for IOI

9
8

Hello people,

I wanted to have a chronological order for all the topics for the preparation of IOI and that is why I am creating this thread. The main motive is that my school has allowed me and other interested students to form a group to start preparing students for OIs. I will be introducing it to the junior classes. So, it would be nice if the order started from the very basics and went to intermediate or even advanced if people are willing to contribute. This is a community wiki so feel free to edit it for the help of myself and all those who prepare for IOI in present or future. :)

I know that these exist:

But non of these are "chronologically ordered". Topics are better ordered with increasing order of difficulty, starting from changing from Turbo C++ to GNU C++11.

For now, I am creating a very rough order. I hope more people contribute to it. Also, I will keep editing it till I can. :)
  1. Big O Notation
  2. Ad hoc problems
  3. Brute force
    • Using DFS
    • Using BFS
    • Permutation generation
    • Subset generation
  4. Maths
  5. Greedy
  6. Data structures(Excluding graph)
    • Arrays
    • Strings
    • Vectors
    • Stack
    • Queue
    • Heap
    • List
    • Deque
  7. Divide and conquer
    • Binary search(In an array/On answer)
    • Merge sort
    • Segment tree
    • Merge sort tree
    • Centroid decomposition
  8. Dynamic Programming
    • Introduction(Possibly using the classic fibonacci example)
    • LCS/LIS
    • Edit Distance
    • Knapsack
    • Matrix Chain multiplication
  9. Graphs
    • BFS/DFS
    • Flood Fill
    • Shortest Path algos
    • MST
  10. String algos
P.S. Add subtopics as subcategories :)

Thank you in advance to all who contribute!

This question is marked "community wiki".

asked 07 Aug, 15:58

ista2000's gravatar image

5★ista2000 ♦
1.6k313
accept rate: 20%

edited 15 Aug, 00:03

2

All the best dear :)

(07 Aug, 16:03) vijju123 ♦5★

You can add some topics too @vijju123 :P

(07 Aug, 16:06) ista2000 ♦5★

Great initiative @ista2000

(09 Aug, 22:25) akashbhalotia3★

But not one contribution from anyone :(

(10 Aug, 05:57) ista2000 ♦5★

https://www.quora.com/What-algorithms-and-data-structures-should-I-learn-for-ZCO-and-INOI

^^ This might be helpful although this just contains topics for ZCO and INOI.

(12 Aug, 20:01) mathecodician5★

@mathecodician It will also be good if you add one or two topics ;_;

(12 Aug, 20:43) ista2000 ♦5★
showing 5 of 6 show all

I think bruteforce is the most basic skill:

BFS, DFS, combination and permutation generation.

link

answered 07 Aug, 23:28

vasja's gravatar image

4★vasja
51516
accept rate: 7%

I second this. Without brute force you'll never know if your solution is correct.

(08 Aug, 01:52) liaojh5★

Thank you, you can edit the original post though. :)
The only reason I put it out because I most likely will miss some topics.

(08 Aug, 02:03) ista2000 ♦5★

What is a brute force? Can someone explain?

(19 Aug, 06:20) kunnu1202★

Most of the students love maths,so i think number theory will be good after bruteforce.

link

answered 08 Aug, 11:09

hruday968's gravatar image

5★hruday968
1.4k18
accept rate: 13%

Please do add anything you want to suggest. That's the whole point of marking it as a community wiki

(08 Aug, 14:50) ista2000 ♦5★

Well probably there must be something related to STL of C++ as well. Being honest I didn't know much regarding it at start :p

link

answered 08 Aug, 13:41

dishant_18's gravatar image

4★dishant_18
44018
accept rate: 8%

Sure, please feel free to add anything you would like :)

(08 Aug, 14:49) ista2000 ♦5★

Can you tell me how can I add? P.S. I am not that familiar with this stuff. Sorry if its annoying question :p

(10 Aug, 23:15) dishant_184★

Hey @ista2000 It is really good that you have started it. You can take help from forums too. They include quite good topics. Moreover talking about number theory you can add topics like

  1.Euler totient function.

    2.Matrix Exponentiation(Not sure whether it's a part of number theory but it is quite useful when you work on recursive function).

3.Fermat Little Theorem is also very important sometimes (in modulo functions)

 4.Lastly I remember a topic SOS Dynamic Programming approach. If you want to add. :)
link

answered 10 Aug, 15:30

vishesh_345's gravatar image

3★vishesh_345
2267
accept rate: 8%

edited 10 Aug, 15:31

Thank you :)

(12 Aug, 20:15) ista2000 ♦5★
1

U r welcome :)Btw those links were helpful.

(13 Aug, 14:25) vishesh_3453★

Bit-Manipulation

https://www.hackerearth.com/practice/notes/bit-manipulation/

Hashing

https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/

Please add these two topics also after maths, because these topics are more often asked in almost all the contest. Otherwise, the order is great.

Hope this helps!

link

answered 14 Aug, 20:21

sandeep_007's gravatar image

4★sandeep_007
7377
accept rate: 13%

You can click the "Edit it" button where it is written "This question is marked "community wiki". Feel free to edit it.". Please do add as many topics as you can! It will help me a lot.

(14 Aug, 20:59) ista2000 ♦5★
1

I think it has some limit, like "Users above X karma can edit community wiki. ".

I guess I can add this stuff for him :D

But idk the order T_T

(14 Aug, 21:23) vijju123 ♦5★

Order the broad topics in any way but add the subtopics in order of difficulty. For eg, In divide and conquer, first its binary search, next quick sort and then centroid decomposition. Please do add T_T

(14 Aug, 23:05) ista2000 ♦5★

@ista2000 if it is possible then please provide us with links to these topics as there is much information on web and finding a better resource may not be possible for noobs like me so please help by adding links. Anyways nice initiative.

link

answered 20 Aug, 19:14

itachi_2016's gravatar image

4★itachi_2016
512
accept rate: 0%

https://www.commonlounge.com/discussion/f6052177ea3543439251079f57f480e0 (From Commonlounge community of International Olympiad in Informatics)

Haven't found a better compilation for IOI preparation than the above playlist. Hope this helps!

link

answered 21 Aug, 23:43

orcus's gravatar image

2★orcus
1
accept rate: 0%

toggle preview
Preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported
  • mathemetical formulas in Latex between $ symbol

Question tags:

×46
×35

question asked: 07 Aug, 15:58

question was seen: 1,382 times

last updated: 21 Aug, 23:43