Competitive Programming: For Beginners (2018)

From EOJ Wiki
Jump to navigation Jump to search


May 30, 2018:

All lectures have ended. Time has been wasted. I regret to say that this year's lectures do not go as well as expected. Both instructors and students suffered a lot; and I guess most of you learned almost nothing from them. I think I would be to blame for most of the disorders occurred in the lectures, as I hardly had any plans in advance, and eventually at some point, people started to throw the reference book into the trash can and talk about anything they were thinking of, and things just went wild...

As you might have already known, we will have trainings (usually called Multi-university trainings hosted by HDU) in this summer. Usually, it will start at the end of July. Those of you who have decided to stay and continue our sufferable journey, please prepare to sacrifice your summer vacation.

Currently, I cannot think of any reason to convince you to stay.

I guess that's all. Hope you have fun in your final exams.


18:30 - 20:30 Wednesday, Week 8 - 14 (?) or 15 (?)

Recommended Textbook

  • 挑战程序设计竞赛 (第 2 版) 秋叶拓哉 等

You can download PDF from the Internet (there is no copyright guarantee), or you can buy one from online.


Hopefully, we will cover most of the important and nice points in the textbook.

  • Lecture 1 (Week 8): Enumerating skills; dynamic programming. (Textbook 2.1, 2.3)
  • Lecture 2 (Week 9): Mathematics fundamentals.
  • Lecture 3 (Week 10): (Advanced) Data Structures.
  • Lecture 4 (Week 11): Computational Geometry.
  • Lecture 5 (Week 12): Graph Theory.
  • Lecture 6 (Week 13): Misc.
  • Lecture 7 (Week 14): Misc.


You should do the reading BEFORE the lecture, otherwise you would probably have a lot of confusions.

  • BEFORE Lecture 1: Textbook 1.1 - 1.6, 2.1 - 2.3
  • AFTER Lecture 5: PPT


You can do the exercises before the lecture, or after, as you like.

Hopefully we will discuss about the exercises from the last lecture before every lecture.